在Python中的csv文件中添加两个列表以分隔列

Posted

技术标签:

【中文标题】在Python中的csv文件中添加两个列表以分隔列【英文标题】:Adding two lists to separate columns in csv file in Python 【发布时间】:2018-10-26 16:14:27 【问题描述】:

我有两个列表如下。

a=[1,3,5,6,7,12]
b=[23,45,67,67]

我需要将列表放在 csv 文件中的单独列中,如下所示:

Item,Quantity 
[1,3,5,6,15],[23,45,67,67]

我尝试使用下面的代码 sn-ps,但没有得到我想要的结果。

with open('sample_dataset.csv', 'w', encoding = 'utf-16', newline='') as outfile:
    rowlists = zip(a, b)
    writer = csv.writer(outfile)
    for row in rowlists:
        writer.writerow(row)

结果是:

1,23
3,45
5,67
6,67

使用熊猫

d=[a,b]
my_df = pd.DataFrame(d)
my_df.to_csv('sample_dataset.csv', index=False, header=False)

结果在不同的行中:

1,3,5,6,7.0,12.0
23,45,67,67,,

感谢您的帮助和意见。谢谢

【问题讨论】:

您的输出示例不是有效的 csv。 【参考方案1】:

使用 csv 模块。

例如:

a=[1,3,5,6,7,12]
b=[23,45,67,67]

import csv
with open(filename, "w") as outfile:
    writer = csv.writer(outfile, escapechar=' ', quoting=csv.QUOTE_NONE)
    writer.writerow(["Item", "Quantity"])
    writer.writerow([a, b])

【讨论】:

完美运行。太感谢了。如何避免中间出现空白行? @Rakesh 他们只有 6 个代表。除非您为他们的问题投票,否则您如何期望他们投票?【参考方案2】:
a=[1,3,5,6,7,12]
b=[23,45,67,67]

with open('sample_dataset.csv', 'w') as f:
    f.write("Item,Quantity\n")
    f.write(",\n".format(a, b))

输出文件:

'''
Item,Quantity
[1, 3, 5, 6, 7, 12],[23, 45, 67, 67]

'''

【讨论】:

【参考方案3】:
print(f'Item,Quantity\n[",".join(map(str, a))],[",".join(map(str, b))]')

Item,Quantity
[1,3,5,6,7,12],[23,45,67,67]

【讨论】:

以上是关于在Python中的csv文件中添加两个列表以分隔列的主要内容,如果未能解决你的问题,请参考以下文章

Python:将列表写入 Pandas 中的列

用 Python 解析 CSV / 制表符分隔的 txt 文件

如何将列与列组合以获取数据列表中的结果(Python)?

Python将整数从csv文件读入列表

如何用python读取csv文件,并把csv文件的第3,4列形成一个列表在python 中显示。如图中的两列数据

读取csv字典变成str了怎么办