Letzte 10 Minuten eines pandas DataFrame abrufen
In unserem vorherigen Beitrag haben wir gezeigt, wie man 5 Minuten von einem pandas DataFrame abzieht:
pd.Timestamp('now') - pd.Timedelta(10, 'minutes')Wir können dieses Wissen auch verwenden, um die letzten 10 Minuten eines pandas DataFrame abzurufen. In unserem Beispiel gehen wir davon aus, dass df[“Timestamp”] den Zeitstempel enthält. Zuerst rufen wir den letzten Zeitstempel im Datensatz ab mit
# Verwenden Sie dies, wenn der Zeitstempel der Index des DataFrame ist
last_ts = df.index.iloc[-1]oder
# ... oder verwenden Sie dies, wenn der Zeitstempel in einer Spalte steht
last_ts = df["Timestamp"].iloc[-1]Als Nächstes definieren wir den ersten Zeitstempel, der berücksichtigt werden soll, indem wir 10 Minuten von last_ts abziehen:
first_ts = last_ts - pd.Timedelta(10, 'minutes')Nun können wir den DataFrame filtern mit
# Verwenden Sie dies, wenn der Timestamp in einer Spalte steht
filtered_df = df[df["Timestamp"] >= first_ts]oder
# Verwenden Sie dies, wenn der Timestamp der Index des DataFrame ist
filtered_df = df[df.index >= first_ts]Durch Filtern muss der DataFrame nicht sortiert sein und die ursprüngliche Reihenfolge wird beibehalten.
Vollständiges Beispiel:
Dieses Beispiel lädt unseren vorgefertigten Zeitreihen-Beispieldatensatz aus unserem vorherigen Beitrag pandas-Zeitreihen-DataFrame-Beispieldatensatz erstellen. Der Code lädt diesen Datensatz (der 1 Sekunde lang ist) und nimmt die letzten 0,5 Sekunden daraus.
import pandas as pd
# Beispieldatensatz laden
df = pd.read_csv("https://techoverflow.net/datasets/timeseries-example.csv", parse_dates=["Timestamp"])
df.set_index("Timestamp", inplace=True)
# Verwenden Sie dies, wenn der Zeitstempel der Index des DataFrame ist
last_ts = df.index[-1]
first_ts = last_ts - pd.Timedelta(0.5, 'seconds')
filtered_df = df[df.index >= first_ts]
# Ergebnis plotten
filtered_df.plot()