有一个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
在其他脚本中,相同的技术也可以正常工作,我不知道为什么它会乘以值
答案 0 :(得分:2)
因为它是字符串,所以如果乘以标量则它会重复值:
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)