Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menyertai DataFrames dengan Julat Masa Bertindih Menggunakan Pengindeksan Selang?
Menyertai Bingkai Data dengan Julat Bertindih Menggunakan Pengindeksan Selang
Diberikan dua bingkai data, df_1 dan df_2, dengan lajur biasa yang mewakili julat masa tarikh, kami menyasarkan untuk menyertai mereka menggunakan syarat tertentu: nilai lajur datetime df_1 mesti berada dalam julat dinyatakan dalam df_2.
df_1 timestamp A B 0 2016-05-14 10:54:33 0.020228 0.026572 1 2016-05-14 10:54:34 0.057780 0.175499 2 2016-05-14 10:54:35 0.098808 0.620986 3 2016-05-14 10:54:36 0.158789 1.014819 4 2016-05-14 10:54:39 0.038129 2.384590 df_2 start end event 0 2016-05-14 10:54:31 2016-05-14 10:54:33 E1 1 2016-05-14 10:54:34 2016-05-14 10:54:37 E2 2 2016-05-14 10:54:38 2016-05-14 10:54:42 E3
Penyelesaian:
Kita boleh menggunakan pengindeksan selang untuk mencapai ini. Pengindeksan selang membuat tong berdasarkan julat yang ditentukan dalam df_2 dan memberikan label kepada cap masa dalam df_1 yang terdapat dalam tong tersebut.
import pandas as pd # Convert start and end columns to IntervalIndex df_2.index = pd.IntervalIndex.from_arrays(df_2['start'], df_2['end'], closed='both') # Get the event associated with each timestamp in df_1 df_1['event'] = df_1['timestamp'].apply(lambda x: df_2.iloc[df_2.index.get_loc(x)]['event'])
Output:
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
Atas ialah kandungan terperinci Bagaimana untuk Menyertai DataFrames dengan Julat Masa Bertindih Menggunakan Pengindeksan Selang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!