在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 解析 CSV / 制表符分隔的 txt 文件