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

Posted

技术标签:

【中文标题】在 python 的 2 列 CSV 文件中写入 2 个列表【英文标题】:Write 2 lists in 2 columns of CSV file in python 【发布时间】:2018-10-23 19:06:52 【问题描述】:

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

【问题讨论】:

【参考方案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)

或者您可以使用writerows 和列表推导来代替常规的for 循环:

writer.writerows(['col1': i, 'col2': j for i,j in zip(a,b)])

【讨论】:

【参考方案2】:

使用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。希望对您有所帮助。

【讨论】:

以上是关于在 python 的 2 列 CSV 文件中写入 2 个列表的主要内容,如果未能解决你的问题,请参考以下文章

Python 怎么在csv文件中加入一列数据

如何将数据从 python 列表中的列和行写入 csv 文件?

python中对csv文件某一列的每一行文本进行分词后再写到该文件另一列怎么做

在Python中的列中将不同大小的列表写入csv

将多个列表写入 csv Python

python如何根据csv中一列的内容对另一列进行写入