如何拉伸Pandas栏的长度值?

2024-09-29 01:39:11 发布

您现在位置:Python中文网/ 问答频道 /正文

有一个df

df = 

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

变量df_if='123'

我需要用df\u if的值创建一个额外的df\u 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

在另一个脚本中,同样的技术也能正常工作,我不明白为什么它会乘以这个值


Tags: iddfdateiffooismybar
1条回答
网友
1楼 · 发布于 2024-09-29 01:39:11

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

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)

相关问题 更多 >