[FIXED] Pandas: Auswählen von DataFrame-Zeilen zwischen zwei Daten (Datetime-Index)

Ausgabe

Ich habe einen Pandas DataFrame mit einem DatetimeIndex und einer Spalte, MSE Loss
in der der Index wie folgt formatiert ist:

DatetimeIndex(['2015-07-16 07:14:41', '2015-07-16 07:14:48',
           '2015-07-16 07:14:54', '2015-07-16 07:15:01',
           '2015-07-16 07:15:07', '2015-07-16 07:15:14',...]

Es umfasst mehrere Tage.

Ich möchte alle Zeilen (alle Zeiten) eines bestimmten Tages auswählen, ohne die tatsächlichen Zeitintervalle genau zu kennen. Zum Beispiel: Zwischen 2015-07-16 07:00:00und2015-07-16 23:00:00

Ich habe den hier beschriebenen Ansatz ausprobiert: hier

Aberdf[date_from:date_to]

Ausgänge:

KeyError: Timestamp('2015-07-16 07:00:00')

Es will also genaue Indizes. Außerdem habe ich keine dateSpalte. Nur ein Index mit den Daten.

Wie kann ich am besten einen ganzen Tag auswählen, indem ich nur ein Datum angebe, 2015-07-16und wie kann ich dann einen bestimmten Zeitraum innerhalb eines bestimmten Tages auswählen?

Lösung

Möglichkeit 1 :

Beispiel df:

df
                      a
2015-07-16 07:14:41  12
2015-07-16 07:14:48  34
2015-07-16 07:14:54  65
2015-07-16 07:15:01  34
2015-07-16 07:15:07  23
2015-07-16 07:15:14   1

Es sieht so aus, als würden Sie dies ohne versuchen .loc(funktioniert nicht ohne):

df.loc['2015-07-16 07:00:00':'2015-07-16 23:00:00']
                      a
2015-07-16 07:14:41  12
2015-07-16 07:14:48  34
2015-07-16 07:14:54  65
2015-07-16 07:15:01  34
2015-07-16 07:15:07  23
2015-07-16 07:15:14   1

Möglichkeit 2 :

Sie können die boolesche Indizierung für den Index verwenden:

df[(df.index.get_level_values(0) >= '2015-07-16 07:00:00') & (df.index.get_level_values(0) <= '2015-07-16 23:00:00')]


Beantwortet von –
Andrew L


Antwort geprüft von –
Jay B. (FixError Admin)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like