2016-04-18 27 views
6

Ich habe die folgenden. Datenrahmen:Entfernen Header-Spalte aus Pandas Datenrahmen

df

A B 
0 23 12 
1 21 44 
2 98 21 

Wie entferne ich die Spaltennamen A und B aus diesem Datenrahmen? Eine Möglichkeit wäre, sie in eine CSV-Datei zu schreiben und sie dann unter Angabe von header = None zu lesen. Gibt es eine Möglichkeit, das zu tun, ohne csv zu schreiben und neu zu lesen?

+0

df.columns = [''] * 2? –

+0

Warum möchten Sie sie entfernen? – Alexander

+0

Ich habe eine Funktion, die davon ausgeht, dass sie nicht vorhanden sind – user308827

Antwort

7

Ich glaube, Sie Spaltennamen entfernen können nicht, sie nur zurücksetzen, indem range mit shape:

print df.shape[1] 
2 

print range(df.shape[1]) 
[0, 1] 

df.columns = range(df.shape[1]) 
print df 
    0 1 
0 23 12 
1 21 44 
2 98 21 

Dies ist das gleiche wie mit to_csv und read_csv:

print df.to_csv(header=None,index=False) 
23,12 
21,44 
98,21 

print pd.read_csv(io.StringIO(u""+df.to_csv(header=None,index=False)), header=None) 
    0 1 
0 23 12 
1 21 44 
2 98 21 

Nächster Lösung mit skiprows:

print df.to_csv(index=False) 
A,B 
23,12 
21,44 
98,21 

print pd.read_csv(io.StringIO(u""+df.to_csv(index=False)), header=None, skiprows=1) 
    0 1 
0 23 12 
1 21 44 
2 98 21 
+0

Das ist eine sehr intelligente Möglichkeit, Zeilen- oder Spaltenindex zu rezertifizieren – Rockbar

+1

Vielen Dank. Schöner Tag. – jezrael

2

Wie man eine Überschrift (erste Reihe) und einen Index (erste Spalte) loswird.

in eine CSV-Datei schreiben:

df = pandas.DataFrame(your_array) 
df.to_csv('your_array.csv', header=False, index=False) 

aus CSV-Datei zu lesen:

df = pandas.read_csv('your_array.csv') 
a = df.values 

Wenn Sie eine CSV-Datei lesen möchten, dass header zusätzliche Parameter keinen Header enthalten, übergeben :

df = pandas.read_csv('your_array.csv', header=None) 
Verwandte Themen