2016-04-09 23 views
40

Ho una situazione in cui a volte quando leggo un csv da df ottengo una colonna di tipo indice indesiderata denominata unnamed:0. Questo è molto fastidioso! Ho provatoPanda: come sbarazzarsi di `Innominato:` colonna in un dataframe

merge.to_csv('xy.df', mode = 'w', inplace=False) 

ho pensato che era una soluzione a questo, ma sto ancora ricevendo la colonna unnamed:0! Qualcuno ha un'idea su questo?

risposta

54

E 'la colonna di indice, passare index=False di non scrivere fuori, vedere la docs

Esempio:

In [37]: 
df = pd.DataFrame(np.random.randn(5,3), columns=list('abc')) 
pd.read_csv(io.StringIO(df.to_csv())) 

Out[37]: 
    Unnamed: 0   a   b   c 
0   0 0.109066 -1.112704 -0.545209 
1   1 0.447114 1.525341 0.317252 
2   2 0.507495 0.137863 0.886283 
3   3 1.452867 1.888363 1.168101 
4   4 0.901371 -0.704805 0.088335 

Compara con:

In [38]: 
pd.read_csv(io.StringIO(df.to_csv(index=False))) 

Out[38]: 
      a   b   c 
0 0.109066 -1.112704 -0.545209 
1 0.447114 1.525341 0.317252 
2 0.507495 0.137863 0.886283 
3 1.452867 1.888363 1.168101 
4 0.901371 -0.704805 0.088335 

Si potrebbe anche opzionalmente dire read_csv che la prima colonna è la colonna dell'indice passando index_col=0:

In [40]: 
pd.read_csv(io.StringIO(df.to_csv()), index_col=0) 

Out[40]: 
      a   b   c 
0 0.109066 -1.112704 -0.545209 
1 0.447114 1.525341 0.317252 
2 0.507495 0.137863 0.886283 
3 1.452867 1.888363 1.168101 
4 0.901371 -0.704805 0.088335 
+0

Grazie EdChum! Fastidio eliminato! Pensare che stavo solo leggendo i documenti e cercando questa soluzione. In qualche modo non stavo capendo correttamente. –

Problemi correlati