python - 如何拉伸(stretch) pandas 中列的长度值?

标签 python pandas

有一个df

df = 

date        foo   bar
2019-01-01  foo1  bar1
2019-02-01  foo2  bar2
2019-03-01  foo3  bar3

和一个变量 df_if = '123'

我需要使用 df_if 的值创建一个附加列 df_id

# My desirable output is:

date        foo   bar   df_id
2019-01-01  foo1  bar1  123
2019-02-01  foo2  bar2  123
2019-03-01  foo3  bar3  123

我尝试这样做

df['df_id'] = df_id * len(df)

但它也会乘以变量本身

# The result is:

date        foo   bar   df_id
2019-01-01  foo1  bar1  123123123
2019-02-01  foo2  bar2  123123123
2019-03-01  foo3  bar3  123123123

在其他脚本中,相同的技术可以正常工作,我不明白为什么它会乘以值

最佳答案

因为它是字符串,所以如果乘以标量,它会重复值:

print ('a' * 3)
aaa

print (df_id * 3)
123123123

也许您想将值转换为一个元素列表:

print (['a'] * 3)
['a', 'a', 'a']

print ([df_id] * 3)
['123', '123', '123']

df['df_id'] = [df_id] * len(df)

但最简单的是:

df['df_id'] = df_id 

或者:

df = df.assign(df_id = df_id)

关于python - 如何拉伸(stretch) pandas 中列的长度值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58376189/

相关文章:

python - Matlab到Python的转换: "poissinv" function

python - Django获取PointField的坐标值

javascript - 如何从 4 名玩家之间的 9 张牌中找出最高的一手牌?

python - Pandas groupby 意味着不在日期时间列上工作

python - pandas:groupby 1 列,求和另一列,并删除重复的行

python - 使用summary_out时将回归结果导出为csv文件

python - python的matplotlib.pyplot中3D参数化曲线的线条颜色

Python 字符串格式 - 限制字符串长度,但修剪字符串开头

python - Pandas 对开始日期之后发生的列中的数据求和

python - 过滤 Pandas 数据框的最干净方法?