gpt4 book ai didi

python - 向 csv 文件添加标题

转载 作者:行者123 更新时间:2023-12-01 04:30:42 25 4
gpt4 key购买 nike

我有一堆已压缩的列表:

 zipped = zip(list1, list2, list3)

我有一个 csv 文件(已经有标题),如下所示:

Col_1    Col_2    Col_3
data data data

现在我想将我的压缩列表添加为现有文件的列,使其看起来像这样(列表名称作为标题):

Col_1    Col_2    Col_3    list1    list2    list3
data data data data data data

我现在有这个代码:

with open('existing.csv', 'rb') as infile, open('out_file.csv', 'wb') as outfile:
reader = csv.reader(infile)
writer = csv.writer(outfile)
writer.writerow(["list1", "list2", "list3"])
for i, row in enumerate(reader):
row.extend(zipped[i])
writer.writerow(row)

但是,不幸的是,这会覆盖现有的列名称。

最佳答案

您需要保留现有的标题,即读者对象的第一行:

with open('existing.csv', 'rb') as infile, open('out_file.csv', 'wb') as outfile:
reader = csv.reader(infile)
header = next(reader) # get header
writer = csv.writer(outfile)
# create list with old header and new
writer.writerow(header+["list1", "list2", "list3"])

您还可以使用itertools.izip来压缩列表,在for循环中调用next来获取每个子元素:

from itertools import izip
zipped = izip(list1, list2, list3)
with open('existing.csv', 'rb') as infile, open('out_file.csv', 'wb') as outfile:
reader = csv.reader(infile)
headers = next(reader)
writer = csv.writer(outfile)
writer.writerow(headers+["list1", "list2", "list3"])
for row in reader:
row.extend(next(zipped))
writer.writerow(row)

您自己的代码实际上不会覆盖 header ,它会添加您的新 header ,然后直接使用压缩列表中的第一个子元素压缩原始 header 。

关于python - 向 csv 文件添加标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32426229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com