Joining DataFrames Based on Column Value Ranges
In the given context, we have two dataframes, df_1 and df_2, where we need to merge them such that the timestamp column in df_1 falls within the start and end columns in df_2.
Ein Ansatz, um dies zu erreichen, erstellt einen Intervallindex aus den Start- und Endspalten in df_2. Wir können dann die Methode get_loc verwenden, um das entsprechende Ereignis für jeden Zeitstempel in df_1 zu erhalten. 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'])
Dies erzeugt eine neue Spalte in DF_1, die die entsprechenden Ereignisse für jedes Zeitstempel enthält. Der resultierende angeschlossene DataFrame enthält die folgenden Spalten:
timestamp A B event
Die Ausgabe sieht ähnlich aus wie:
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
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3