为了账号安全,请及时绑定邮箱和手机立即绑定

如何将整个列表分配给熊猫数据框的每一行

如何将整个列表分配给熊猫数据框的每一行

至尊宝的传说 2021-08-05 16:47:17
我有一个数据框和一个列表df = pd.DataFrame({'A':[1,2,3], 'B':[4,5,6]})mylist= [10,20,30,40,50]我想在数据帧的每一行中有一个列表作为元素。如果我喜欢这里,df['C'] = mylistPandas 试图每行广播一个值,所以我收到一个错误Length of values does not match length of index。   A  B   C0  1  4  [10,20,40,50]1  2  5  [10,20,40,50]2  3  6  [10,20,40,50]
查看完整描述

3 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

首先,我认为list在 Pandas 中使用s 不是一个好主意。


但是可以通过列表理解来实现:


df['C'] = [mylist for i in df.index]

#another solution

#df['C'] = pd.Series([mylist] * len(df))


print (df)


   A  B                     C

0  1  4  [10, 20, 30, 40, 50]

1  2  5  [10, 20, 30, 40, 50]

2  3  6  [10, 20, 30, 40, 50]


查看完整回答
反对 回复 2021-08-05
?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

使用的一种替代方法np.tile:


df['C'] = np.tile(mylist, (len(df),1)).tolist()


print (df)


   A  B                     C

0  1  4  [10, 20, 30, 40, 50]

1  2  5  [10, 20, 30, 40, 50]

2  3  6  [10, 20, 30, 40, 50]


查看完整回答
反对 回复 2021-08-05
?
绝地无双

TA贡献1946条经验 获得超4个赞

这是另一种解决方案。它以lambda“Python 方式”使用和做事。我认为它更容易阅读。


import pandas as pd

df = pd.DataFrame({'A':[1,2,3], 'B':[4,5,6]})

mylist= [10,20,30,40,50]

df['combined'] = df.apply(lambda x: mylist, axis=1)

df

//img1.sycdn.imooc.com//610ba5be0001cd9312340260.jpg

查看完整回答
反对 回复 2021-08-05
  • 3 回答
  • 0 关注
  • 136 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号