将数据附加到特定列

2024-06-08 20:12:27 发布

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

我需要将列表中的数据附加到特定列。 我有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)

你知道怎么解决吗?你知道吗


Tags: csv列表sizeorderunitedkingdompdqty
1条回答
网友
1楼 · 发布于 2024-06-08 20:12:27

如果可能,使用一个元素只列出标量,创建标量/列表字典并传递给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

相关问题 更多 >