2013-10-10 32 views
6

我想寫我必須創建一個直方圖到CSV文件的數據。我有我的'箱'名單,我有我的'頻率'列表。有人可以給我一些幫助,將它們寫入各自欄目的csv中嗎?如何將兩個列表中的數據寫入csv中的列?

在第二列的第一列和頻率即箱

+1

你到目前爲止嘗試過什麼? –

+0

Upvoted爲了什麼? –

+0

箱和頻率列表(數字,字符串,列表,字典,類的實例等)中有哪些數據?你會得到更好的答案更多的細節,你在你的問題。 – martineau

回答

12

此示例使用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)) 
+0

謝謝,這很好。我將嘗試在將來的問題中添加更多細節,事後我可以看到它是多麼模糊。 –

2

你應該使用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() 
+1

由於他沒有告訴我們任何關於bin標籤的內容,我一定要在這裏使用'csv'。否則,像「」a = 0-10,b = 0-10「'這樣的bin將會以兩列結束。 – abarnert

+0

@abarnert:同意 – Pixou

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() 
相關問題