2016-04-18 43 views
6

Ho il foll. dataframe:Rimozione della colonna di intestazione da pandas dataframe

df

A B 
0 23 12 
1 21 44 
2 98 21 

Come posso rimuovere i nomi di colonna A e B da questo dataframe? Un modo potrebbe essere quello di scriverlo in un file CSV e quindi leggerlo specificando header = None. c'è un modo per farlo senza scrivere a csv e rileggere?

+0

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

+0

Perché vuoi rimuoverli? – Alexander

+0

Ho una funzione che presuppone che non sono presenti – user308827

risposta

7

penso che non puoi rimuovere i nomi delle colonne, solo azzerati da range con 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 

Questo è lo stesso con to_csv e 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 

soluzione successiva con 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

Questo è un modo molto intelligente per ricontattare indice riga o colonna – Rockbar

+1

Grazie. Bella giornata. – jezrael

2

Come sbarazzarsi di un'intestazione (prima riga) e un indice (prima colonna).

Per scrivere in un file CSV:

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

per leggere da file CSV:

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

Se si desidera leggere un file CSV che non contiene un'intestazione, passaggio ulteriore parametro header :

df = pandas.read_csv('your_array.csv', header=None) 
Problemi correlati