Das Indizieren eines Pandas-Datenrahmens mit dem datetime.date-Index führt zu KeyErrorPython

Python-Programme
Anonymous
 Das Indizieren eines Pandas-Datenrahmens mit dem datetime.date-Index führt zu KeyError

Post by Anonymous »

Ich rufe einige Daten aus meiner MySQL-Datenbank ab. Diese Daten enthalten das Datum (nicht Datum/Uhrzeit) in einer Spalte und einige andere Zufallsdaten in den anderen Spalten. Nehmen wir an, dtf ist mein Datenrahmen. Es gibt noch keinen Index, also habe ich einen gesetzt

Code: Select all

dtf.set_index('date', inplace=True)
Jetzt möchte ich Daten von einem bestimmten Datum erhalten, also schreibe ich zum Beispiel:

Code: Select all

dtf.loc['2000-01-03']
oder einfach

Code: Select all

dtf['2000-01-03']
Das gibt mir einen KeyError:

Code: Select all

KeyError: '2000-01-03'
Aber ich weiß, dass es da drin ist; dtf.head() zeigt mir das.

Also habe ich mir den Typ des Index der ersten Zeile angesehen:

Code: Select all

type(dtf.index[0])
und es sagt mir: datetime.date. Alles gut. Wenn ich jetzt einfach tippe

Code: Select all

dtf.index
Die Ausgabe ist

Code: Select all

Index([2000-01-03, 2000-01-04, 2000-01-05, 2000-01-06, 2000-01-07, 2000-01-10,
2000-01-11, 2000-01-12, 2000-01-13, 2000-01-14,
...
2015-09-09, 2015-09-10, 2015-09-11, 2015-09-14, 2015-09-15, 2015-09-16,
2015-09-17, 2015-09-18, 2015-09-21, 2015-09-22],
dtype='object', name='date', length=2763)
Ich bin etwas verwirrt über dtype='object'. Sollte das nicht datetime.date lauten?
Wenn ich datetime in meiner MySQL-Tabelle anstelle von date verwende, funktioniert alles wie ein Zauber. Ist das ein Fehler oder eine Funktion? Ich würde wirklich gerne datetime.date verwenden, weil es meine Daten am besten beschreibt.
Meine Pandas-Version ist 0.17.0

Ich verwende Python 3.5.0

Mein Betriebssystem ist Arch Linux

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post