如何将两个列表中的数据写入csv中的列?

时间:2013-10-10 17:42:03

标签: python csv file-io

我想写一些数据,我必须在csv文件中创建直方图。我有我的'箱'列表,我有'频率'列表。有人可以给我一些帮助,将它们写入各自专栏中的csv吗?

即第一列中的区间和第二列中的频率

3 个答案:

答案 0 :(得分:14)

原始的Python 2答案

此示例使用izip(而不是zip)来避免创建新列表并将其保留在内存中。它还使用Python's built in csv module,以确保正确的转义。作为额外的奖励,它还避免使用任何循环,因此代码简洁明了。

import csv
from itertools import izip

with open('some.csv', 'wb') as f:
    writer = csv.writer(f)
    writer.writerows(izip(bins, frequencies))

适用于Python 3的代码

在Python 3中,您不再需要izip - 内置zip现在执行izip以前的操作。您也不需要以二进制模式打开文件:

import csv

with open('some.csv', 'w') as f:
    writer = csv.writer(f)
    writer.writerows(zip(bins, frequencies))

答案 1 :(得分:3)

你应该使用zip() http://docs.python.org/2/library/functions.html#zip

类似的东西:

f=open(my_filename,'w')
for i,j in zip(bins,frequencies):
    f.write(str(i)+","+str(j))
f.close()

答案 2 :(得分:3)

嗯,我错过了什么吗?这听起来非常简单:

bins = [ 1,2,3,4,5 ]
freq = [ 9,8,7,6,5 ]

f = open("test.csv", "w")

for i in xrange(len(bins)):
    f.write("{} {}\n".format(bins[i], freq[i]))

f.close()