首頁 >後端開發 >Python教學 >如何在 Pandas 中根據日期時間範圍有效地連接 DataFrame?

如何在 Pandas 中根據日期時間範圍有效地連接 DataFrame?

DDD
DDD原創
2024-12-13 05:42:09159瀏覽

How to Efficiently Join DataFrames Based on Datetime Ranges in Pandas?

將資料幀與範圍內的列值連接

給定兩個資料幀df_1 和df_2,其中df_1 包含日期時間列以及值A 和B, df_2 包含範圍日期時間值和對應的事件信息,一個常見的任務是根據條件合併這些資料幀df_1 中的日期時間值位於df_2中指定的範圍內。

實現此目的的簡單方法包括從 df_2 的開始列和結束列建立區間索引,並將閉合參數設為兩者。這確保了範圍是包含在內的。

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

建立間隔索引後,我們可以使用 IntervalIndex 的 get_loc 方法來定位每行包含來自 df_1 的日期時間值的範圍。

df_1['event'] = df_1['timestamp'].apply(lambda x : df_2.iloc[df_2.index.get_loc(x)]['event'])

將此函數應用於 df_1 的日期時間列中的每個值,我們可以填入一個新列 event,其中包含對應的df_1 中每一行的 df_2 事件資訊。

這種方法提供了一種使用 Pandas 提供的強大區間索引功能基於範圍條件連接資料幀的有效方法。輸出將是一個資料框,其中包含 df_1 和 df_2 中的所有列,事件列為 df_1 中的每一行提供匹配的事件。

以上是如何在 Pandas 中根據日期時間範圍有效地連接 DataFrame?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn