2013-10-10 6 views
6

Ich möchte Daten schreiben, die ich ein Histogramm in eine CSV-Datei erstellen muss. Ich habe meine "Behälter" -Liste und ich habe meine "Häufigkeitsliste". Kann mir jemand Hilfe geben, um sie in ihren jeweiligen Spalten in einen CSV zu schreiben?Wie schreibe ich Daten aus zwei Listen in Spalten in einem CSV?

dh Behälter in der ersten Spalte und Frequenz in der zweiten Spalte

+1

Was haben Sie bisher versucht? –

+0

Upvoted für was? –

+0

Welche Art von Daten befinden sich in den Listen für Häufungen und Häufigkeiten (Zahlen, Strings, Listen, Wörterbücher, Klasseninstanzen usw.)? Sie erhalten bessere Antworten, je mehr Details Sie in Ihre Fragen eingeben. – martineau

Antwort

12

Dieses Beispiel izip (statt zip) verwendet eine neue Liste erstellen zu vermeiden und sie im Speicher zu halten haben. Es verwendet auch Python's built in csv module, die ordnungsgemäße Flucht gewährleistet. Als zusätzlichen Bonus vermeidet es auch die Verwendung von Loops, daher ist der Code kurz und prägnant.

import csv 
from itertools import izip 

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

Danke, das hat super geklappt. Ich werde versuchen, die Frage in Zukunft genauer zu formulieren, im Nachhinein kann ich sehen, wie vage es ist. –

2

Sie sollten zip() http://docs.python.org/2/library/functions.html#zip

so etwas wie verwenden:

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

Da er uns nichts darüber gesagt hat, wie die bin-Labels aussehen, würde ich definitiv 'csv' hier verwenden wollen. Andernfalls wird ein Fach wie "a = 0-10, b = 0-10" als zwei Spalten enden. – abarnert

+0

@abarnert: einverstanden – Pixou

3

Hm, bin ich etwas fehlt? Das klingt ziemlich einfach:

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() 
Verwandte Themen