14

我想将必须创建直方图的数据写入 csv 文件。我有我的“垃圾箱”列表和“频率”列表。有人可以帮我将它们写入各自列中的 csv 吗?

即第一列中的 bin 和第二列中的频率

4

3 回答 3

25

原始的 Python 2 答案

此示例使用izip( 而不是zip) 来避免创建新列表并将其保存在内存中。它还利用Python 内置的 csv 模块,确保正确转义。作为一个额外的好处,它还避免使用任何循环,因此代码简短而简洁。

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))
于 2013-10-10T17:49:11.803 回答
4

你应该使用 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()
于 2013-10-10T17:47:43.930 回答
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()
于 2013-10-10T17:48:25.403 回答