2016-06-29 4 views
1

Ich möchte meinen DataFrame in eine CSV-Datei schreiben. Das Ergebnis ist unten gezeigt. Die Zeilen sind nicht miteinander ausgerichtet. Haben Sie Vorschläge, dieses Problem zu lösen?Pandas dataframe.to_csv Dateizeilen, die nicht zueinander ausgerichtet sind

Code:

dataframe.to_csv(data,sep="",index=False,header=False,encoding='ascii', 
       float_format='%10.4f',quoting=csv.QUOTE_NONE, escapechar=" ", mode='a+') 

Inhalt der file.csv:

 
++++++++++++++++++++++++ 
C1 c2 c3  c2 
1   1.111   1.111   1.111 
2   23.261   1.111   1.111 
3  138.383   1.111   1.111 
2  228.717   1.111   1.111 
5  358.225   1.111   1.111 
6  268.173   1.111   1.111 
7  577.311   1.111   1.111 
8  687.623   1.111   1.111 
3  737.357   1.111   1.111 
11  317.185   1.111   1.111 
11  1116.813   1.111   1.111 
12  1126.521   1.111   1.111 
13  1151.325   1.111   1.111 

22  2273.853   1.111   1.111 
23  2583.581   1.111   1.111 
22  2618.822   1.111   1.111 
25   1.111   1.111   23.261 
26   23.261   1.111   23.261 
27  138.383   1.111   23.261 
28  228.717   1.111   23.261 
23  358.225   1.111   23.261 
+0

Wenn ich versuche, '.to_csv zu nennen()' 'mit sep = ""', erhalte ich eine Fehlermeldung: ' "Begrenzer" muss eine 1-Zeichenfolge sein '. Welche Version von Pandas benutzt du? – chrisaycock

Antwort

0

Verwenden Trennzeichen tab:

dataframe.to_csv(data,sep="\t",index=False,header=False,encoding='ascii', 
      float_format='%10.4f',quoting=csv.QUOTE_NONE, escapechar=" ", mode='a+') 
+0

Auch Registerkarte als Trennzeichen verwenden, habe ich immer noch die gleiche Ausgabe in der Datei ... :( –

3

csv-Dateien sollen nicht vertikal in die ausgerichtet werden Mode. Sie sollen Werte haben, die durch Kommata getrennt sind. Sie scheinen gut formatierte Ascii zu wollen.

print dataframe.__repr__() 

    C1  c2  c3 c2.1 
0 1  1.111 1.111 1.111 
1 2 23.261 1.111 1.111 
2 3 138.383 1.111 1.111 
3 2 228.717 1.111 1.111 
4 5 358.225 1.111 1.111 
5 6 268.173 1.111 1.111 
6 7 577.311 1.111 1.111 
7 8 687.623 1.111 1.111 
8 3 737.357 1.111 1.111 
9 11 317.185 1.111 1.111 
10 11 1116.813 1.111 1.111 
11 12 1126.521 1.111 1.111 
12 13 1151.325 1.111 1.111 
13 22 2273.853 1.111 1.111 
14 23 2583.581 1.111 1.111 
15 22 2618.822 1.111 1.111 
16 25  1.111 1.111 23.261 
17 26 23.261 1.111 23.261 
18 27 138.383 1.111 23.261 
19 28 228.717 1.111 23.261 
20 23 358.225 1.111 23.261 

oder:

with open('./filename.txt', 'w') as fo: 
    fo.write(dataframe.__repr__()) 
+0

Vielen Dank für Ihre Antwort. In der TXT-Datei, habe ich eine abgeschnittene Darstellung für den Datenrahmen. Line1 ..... .... Zeile 234 –

Verwandte Themen