在python中的2列CSV文件中写入2个列表

时间:2018-05-14 07:21:43

标签: python python-3.x list csv

我有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

2 个答案:

答案 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。希望有所帮助。