python - Pandas - 将数据附加到特定列

标签 python 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)

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

最佳答案

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

关于python - Pandas - 将数据附加到特定列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58431910/

相关文章:

Python:将执行语句作为函数参数传递

python - pytorch 中的 if-else 语句和 torch.where 之间有什么区别?

python - 排序导入的文本文件?

python - 基本镜像满足tensorflow版本,但docker仍然从requirements.txt下载tensorflow

python - 获取行中的最高值,但仅在前一行的特定条件下

python - 如何将字典的键转换为单列的 pandas 数据框?

python - 访问 Google 搜索结果

Python 无法导入 DataFrame

Python 计算数据透视表中的所有 bool 值

python - 具有指定(附加)列的 Pandas 数据透视