DataFrame-Zeilen zwischen zwei Daten auswählen
Ich erstelle einen DataFrame aus einer csv-Datei wie folgt:
stock = pd.read_csv('data_in/' + filename + '.csv', skipinitialspace=True)
Der DataFrame hat eine Datumsspalte. Gibt es eine Möglichkeit, einen neuen DataFrame zu erstellen (oder einfach den vorhandenen zu überschreiben), der nur Zeilen mit Datumswerten enthält, die in einen bestimmten Datumsbereich oder zwischen zwei bestimmte Datumswerte fallen?
163
3
Es gibt zwei mögliche Lösungen:
df.loc[mask]
df[start_date : end_date]
Verwendung einer booleschen Maske:
Stellen Sie sicher, dass
df['date']
eine Serie mit dem Typdatetime64[ns]
ist:Erstelle eine boolesche Maske. start_date
und
end_datekönnen
datetime.datetimesein,
np.datetime64,
pd.Timestamp`, oder auch datetime-Strings sein:Meiner Meinung nach ist es am besten, die Direktprüfungen zu nutzen, anstatt die Loc-Funktion zu verwenden:
Sie können die Methode "isin" für die Spalte "date" wie folgt verwenden df[df["Datum"].isin(pd.date_range(start_date, end_date))]`
Anmerkung: Dies funktioniert nur mit Datumsangaben (wie in der Frage gefordert) und nicht mit Zeitstempeln.
Beispiel:
Das ergibt