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

Pandas - 将数据附加到特定列

Pandas - 将数据附加到特定列

慕的地6264312 2022-06-28 11:13:11
我需要将列表中的数据附加到特定列。我有 4 个列表:orderNumber = ['123456789']countryOfOrigin = ['United Kingdom']sizeList = ['2', '4']quantityList = ['10', '12']我还有一个带有以下标题的 CSV 文件:OrderNumber   COO   Size   QTY我需要将这些列表附加到此 CSV 的正确列中。如果列表在数据中只有一项,则简单地复制以填充所有行OrderNumber        COO         Size   QTY123456789     United Kingdom    2     10123456789     United Kingdom    4     20这是我尝试过的。但它所做的只是在同一列中将所有内容添加到另一个之下orderNumber = ['123456789']countryOfOrigin = ['United Kingdom']sizeList = ['2', '4']quantityList = ['10', '12']header = ["OrderNumber", "COO", "Size", "QTY"]order = pd.DataFrame(orderNumber)order.to_csv('C:/Users/user/Desktop/Pandas-Example2.csv', mode='a', index=False)size = pd.DataFrame(sizeList, columns=["Size"])size.to_csv('C:/Users/user/Desktop/Pandas-Example2.csv', mode='a', index=False)知道如何解决这个问题吗?
查看完整描述

1 回答

?
慕无忌1623718

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

如果可能,请使用一个元素仅列出标量,创建标量/列表字典并传递给DataFrame构造函数 - 所有列表必须具有相同的长度:


orderNumber = '123456789'

countryOfOrigin = 'United Kingdom'

sizeList = ['2', '4']

quantityList = ['10', '12']


d = {"OrderNumber": orderNumber, "COO":countryOfOrigin, "Size":sizeList, "QTY":quantityList}

order = pd.DataFrame(d)

print (order)

  OrderNumber             COO Size QTY

0   123456789  United Kingdom    2  10

1   123456789  United Kingdom    4  12

如果输入总是列表,您可以使用一些预处理:


orderNumber = ['123456789']

countryOfOrigin = ['United Kingdom']

sizeList = ['2', '4']

quantityList = ['10', '12']


vals = [orderNumber, countryOfOrigin, sizeList, quantityList]

header = ["OrderNumber", "COO", "Size", "QTY"]


d = {a: b[0] if len(b) == 1 else b for a, b in zip(header, vals)}

order = pd.DataFrame(d)

print (order)

  OrderNumber             COO Size QTY

0   123456789  United Kingdom    2  10

1   123456789  United Kingdom    4  12


查看完整回答
反对 回复 2022-06-28
  • 1 回答
  • 0 关注
  • 155 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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