将python列表作为新列添加到csv文件

将python列表作为新列添加到csv文件,python,csv,Python,Csv,我有一个包含五列的csv文件: a1 b1 c1 d1 e1 a2 b2 c2 d2 e2 a3 b3 c3 d3 e3 我有一些列表,我想添加到这个csv中,每个列表作为一个新列,因此最终结果如下所示: a1 b1 c1 d1 e1 f1 g1 h1 a2 b2 c2 d2 e2 f2 g2 h2 a3 b3 c3 d3 e3 f3 g3 h3 我可以将这些列表保存为新的csv outputdata=zip(list1,list2,list3,list4) writer=CsvUnicod

我有一个包含五列的csv文件:

a1 b1 c1 d1 e1
a2 b2 c2 d2 e2
a3 b3 c3 d3 e3
我有一些列表,我想添加到这个csv中,每个列表作为一个新列,因此最终结果如下所示:

a1 b1 c1 d1 e1 f1 g1 h1
a2 b2 c2 d2 e2 f2 g2 h2
a3 b3 c3 d3 e3 f3 g3 h3
我可以将这些列表保存为新的csv

outputdata=zip(list1,list2,list3,list4)
writer=CsvUnicodeWriter(open("myoutput.csv","wb"))
writer.writerows(output data)

但这并不是我所需要的。提前感谢。

源csv的索引和压缩列表应该匹配,以便您可以使用enumerate跟踪它

zipped = zip(list1, list2, list3, list4)

with open('in.csv', 'rb') as infile, open('out.csv' 'wb') as outfile:
    reader = csv.reader(infile)
    writer = csv.writer(outfile)
    for i, row in enumerate(reader):
        row.extend(zipped[i])
        writer.writerow(row)
但是,如果您正在进行大量这样的数据争论,请查看库。 pandas代码稍微简单一些,不过您必须习惯pandas api,它基于索引标签和向量化操作

indata = pd.read_csv('in.csv')
zipped = pd.DataFrame(zip(List1, List2, List3, List4)
#axis=1 indicates to concat the frames column wise
outdata = pd.concat([indata, zipped], axis=1)
#we dont want headers and dont want the row labels
outdata.to_csv('out.csv', header=False, index=False)

看一看。可能有助于实际显示您的列表@Padraic我的列表只是数字,即List1=['14','34','13','64'…];列表2=['34'、'65'、'12'、'90'…]等。谢谢!这看起来确实是一个解决方案。但是,我得到了一个sequences expected错误,我不太确定该怎么办。这里是:108 for I,enumeratereader中的行:109 outrow=row.extendzipped[I]->110 writer.writerowoutrow错误:sequence expectedOops!Extend在原地修改对象时返回none。我已经更新了我的答案。很抱歉,我应该先测试一下。谢谢!真的帮了我的忙。