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

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

DDD
發布: 2024-12-13 05:42:09
原創
158 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板