我有2个列表,比方说
a = [1,2,3]
b = [4,5,6]
我想将它们写在CSV文件的两列中,所以当我打开excel表时,我看到的是这样的:
col1 col2
1 4
2 5
3 6
我该怎么做?
我使用zip(a,b)
,但结果存储在一列中:
col1
1 4
2 5
3 6
答案 0 :(得分:1)
您需要使用csv.Dictwriter()
来指定字段名称。
import csv
with open('numbers.csv', 'w', newline='') as csvfile:
fieldnames = ['col1', 'col2']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
for i, j in zip(a, b):
writer.writerow({'col1': i, 'col2': j})
或者您可以使用for
和列表理解来代替常规writerows
循环:
writer.writerows([{'col1': i, 'col2': j} for i,j in zip(a,b)])
答案 1 :(得分:0)
使用pandas
非常简单。只是:
import pandas as pd
然后:
In [13]: df = pd.DataFrame({'col1':a, 'col2':b})
In [14]: df
Out[14]:
col1 col2
0 1 4
1 2 5
2 3 6
In [15]: df.to_csv('numbers.csv', index=False)
基本上,您正在使用列表构建数据框,然后保存回.csv
。希望有所帮助。