首页 > 解决方案 > 如何在熊猫中拉伸列长度的值?

问题描述

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

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

标签: pythonpandas

解决方案


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

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)

推荐阅读