我想写一些数据,我必须在csv文件中创建直方图。我有我的'箱'列表,我有'频率'列表。有人可以给我一些帮助,将它们写入各自专栏中的csv吗?
即第一列中的区间和第二列中的频率
答案 0 :(得分:14)
此示例使用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中,您不再需要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()