Pandas - 将数据附加到特定列

我需要将列表中的数据附加到特定列。我有 4 个列表:


orderNumber = ['123456789']

countryOfOrigin = ['United Kingdom']

sizeList = ['2', '4']

quantityList = ['10', '12']

我还有一个带有以下标题的 CSV 文件:


OrderNumber   COO   Size   QTY

我需要将这些列表附加到此 CSV 的正确列中。如果列表在数据中只有一项,则简单地复制以填充所有行


OrderNumber        COO         Size   QTY

123456789     United Kingdom    2     10

123456789     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)

知道如何解决这个问题吗?


慕的地6264312
浏览 155回答 1
1回答

慕无忌1623718

如果可能,请使用一个元素仅列出标量,创建标量/列表字典并传递给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 QTY0   123456789  United Kingdom    2  101   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 QTY0   123456789  United Kingdom    2  101   123456789  United Kingdom    4  12
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python