Heim >Backend-Entwicklung >Python-Tutorial >Wie verbinde ich DataFrames basierend auf Zeitstempelbereichen?

Wie verbinde ich DataFrames basierend auf Zeitstempelbereichen?

Linda Hamilton
Linda HamiltonOriginal
2024-12-30 22:57:14766Durchsuche

How to Join DataFrames Based on Timestamp Ranges?

Datenrahmen basierend auf Spaltenwertbereichen verbinden

Im gegebenen Kontext haben wir zwei Datenrahmen, df_1 und df_2, die wir zusammenführen müssen sie so, dass die Zeitstempelspalte in df_1 in die Start- und Endspalten in fällt df_2.

Ein Ansatz, dies zu erreichen, besteht darin, einen Intervallindex aus den Start- und Endspalten in df_2 zu erstellen. Anschließend können wir mit der Methode get_loc das entsprechende Ereignis für jeden Zeitstempel in df_1 abrufen. Hier ist der Python-Code für diese Lösung:

# Create interval index from df_2
df_2.index = pd.IntervalIndex.from_arrays(df_2['start'], df_2['end'], closed='both')

# Get corresponding event for each timestamp in df_1
df_1['event'] = df_1['timestamp'].apply(lambda x: df_2.iloc[df_2.index.get_loc(x)]['event'])

Dadurch wird eine neue Spalte mit dem Namen „event“ in df_1 erstellt, die die entsprechenden Ereignisse für jeden Zeitstempel enthält, der in die angegebenen Bereiche in df_2 fällt. Der resultierende verbundene Datenrahmen enthält die folgenden Spalten:

timestamp         A         B event

Die Ausgabe sieht etwa so aus:

            timestamp         A         B event
0 2016-05-14 10:54:33  0.020228  0.026572    E1
1 2016-05-14 10:54:34  0.057780  0.175499    E2
2 2016-05-14 10:54:35  0.098808  0.620986    E2
3 2016-05-14 10:54:36  0.158789  1.014819    E2
4 2016-05-14 10:54:39  0.038129  2.384590    E3

Das obige ist der detaillierte Inhalt vonWie verbinde ich DataFrames basierend auf Zeitstempelbereichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn