2014-11-06 17 views
35

Ich versuche, csv mit Pandas zu schaffen, aber wenn ich es gab mir eine zusätzliche Zeilepandas to_csv erste zusätzliche Spalte entfernen, wie?

d = {'one' : pd.Series([1., 2., 3.]),'two' : pd.Series([1., 2., 3., 4.])} 
df0_fa = pd.DataFrame(d) 
df_csv = df0_fa.to_csv('revenue/data/test.csv',mode = 'w') 

so würde mein Ergebnis sein, um CSV-Export:

,one,two 
0,1.0,1.0 
1,2.0,2.0 
2,3.0,3.0 
3,,4.0 

Aber was ich will ist

one,two 
1.0,1.0 
2.0,2.0 
3.0,3.0 
,4.0 

Antwort

58

Was Sie sehen, ist die Indexspalte. Gerade gesetzt index=False:

df_csv = df0_fa.to_csv('revenue/data/test.csv',mode = 'w', index=False) 
+1

Ich weiß nicht, wie ich das in der Dokumentation verpasst habe, aber toller Fang! Das frustrierte mich für immer und versuchte herauszufinden, wo ich den Index als Spalte hinzugefügt hatte. – Blairg23

+1

Ich knallte meinen Kopf dagegen mehr als ich sollte. –

+4

Und falls jemand versucht, die Spaltennamen zu entfernen, können Sie 'header = False' übergeben. – twiz

4

die CSV-Datei zu lesen, ohne Indizierung Sie die index_col unset kann Pandas zu verhindern, dass die erste Spalte als Index verwendet wird. Und vergessen Sie nicht beim Speichern des CSV auf der Festplatte set index = false in to_csv. Dies erzeugt keine zusätzliche Indexspalte. wenn Sie Else, müssen löschen/eine bestimmte Spalte aus dem Datenrahmen entfernen, verwenden drop, es funktionierte für mich wie folgt:

import pandas as pd 
file_path = 'example_file.csv' 
data_frame = pd.read_csv(file_path, index_col = False) 
column_name = 'column' 
data_frame = data_frame.drop(column_name, axis = 1) 
data_frame.to_csv(file_path, index = False) 

In diesem Fall, auch wenn Ihre csv eine gültige Indexspalte hat, können Sie überspringen index_col = False in read_csv.

Verwandte Themen