gpt4 book ai didi

python - 从数据框中的列表添加新列但列表的值多于数据框中的总行数

转载 作者:太空宇宙 更新时间:2023-11-04 09:29:37 25 4
gpt4 key购买 nike

我有一个数据框和一个列表

df=pd.read_csv('aa.csv') 

temp=['1','2','3','4','5','6','7']`

现在我的数据框只有 3 行。我将 temp 添加为新列

df['temp']=pd.Series(temp)

但在最后的 df 中,我只获得了前 3 个 temp 值,其他所有值都被拒绝了。有什么方法可以将更大/更小的列表作为新列添加到数据框中谢谢

最佳答案

使用DataFrame.reindex在创建新列之前创建由缺失值填充的行:

df = pd.read_csv('aa.csv') 

temp = ['1','2','3','4','5','6','7']

df = df.reindex(range(len(temp)))
df['temp'] = pd.Series(temp)

示例:

df = pd.DataFrame({'A': [1,2,3]})
print(df)
A
0 1
1 2
2 3

temp = ['1','2','3','4','5','6','7']

df = df.reindex(range(len(temp)))
df['temp']=pd.Series(temp)
print (df)
A temp
0 1.0 1
1 2.0 2
2 3.0 3
3 NaN 4
4 NaN 5
5 NaN 6
6 NaN 7

或者使用concat使用 Series 为新列名称指定名称:

s = pd.Series(temp, name='temp')

df = pd.concat([df, s], axis=1)

类似的:

s = pd.Series(temp)
df = pd.concat([df, s.rename('temp')], axis=1)

print (df)
A temp
0 1.0 1
1 2.0 2
2 3.0 3
3 NaN 4
4 NaN 5
5 NaN 6
6 NaN 7

关于python - 从数据框中的列表添加新列但列表的值多于数据框中的总行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56216129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com