2017-12-28 26 views
1

Meine Datenrahmen wie folgt aussieht:Set Index in Pandas df ohne doppelte Spalten Erstellen

In [120]: data.head() 
Out[120]: 
     date open high low close volume 
0 2017-08-07 2.276 2.276 2.253 2.257  0.0 
1 2017-08-08 2.260 2.291 2.253 2.283  0.0 
2 2017-08-09 2.225 2.249 2.212 2.241  0.0 
3 2017-08-10 2.241 2.241 2.210 2.212  0.0 
4 2017-08-11 2.199 2.222 2.182 2.189  0.0 

nach tun:

data.index = pd.to_datetime(data['date']) 

ich mit diesem Ende:

In [122]: data.head() 
Out[122]: 
        date open high low close volume 
date              
2017-08-07 2017-08-07 2.276 2.276 2.253 2.257  0.0 
2017-08-08 2017-08-08 2.260 2.291 2.253 2.283  0.0 
2017-08-09 2017-08-09 2.225 2.249 2.212 2.241  0.0 
2017-08-10 2017-08-10 2.241 2.241 2.210 2.212  0.0 
2017-08-11 2017-08-11 2.199 2.222 2.182 2.189  0.0 

wie kann Ich vermeide es, mit einer doppelten Datumsspalte zu enden? Dankbar für Ihre Hilfe. (Pandas 0.21.1)

+0

Verwenden Sie 'df = df.set_index ('date')'? – Zero

Antwort

2

Convert erster bis heute und .set_index() verwenden:

data['date'] = pd.to_datetime(data['date']) 
data.set_index('date', inplace=True) 
print(data) 

Ausgang:

   open high low close volume 
date           
2017-08-07 2.276 2.276 2.253 2.257  0.0 
2017-08-08 2.260 2.291 2.253 2.283  0.0 
2017-08-09 2.225 2.249 2.212 2.241  0.0 
2017-08-10 2.241 2.241 2.210 2.212  0.0 
2017-08-11 2.199 2.222 2.182 2.189  0.0 

inplace=True Ihre data modifiziert, anstatt einen neuen Datenrahmen zu schaffen.

1

Ich benutze Tropfen anstelle von Inplace. Funktioniert auch.

data [ 'date'] = pd.to_datetime (data [ 'date'])

data.set_index ('date', fallen = True)

Wenn Sie Eigentum fallen auf Richtig, es löscht die Spalte, die als neuer Index verwendet werden soll

Verwandte Themen