有一个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/