Diberikan dua bingkai data, df_1 dan df_2, dengan df_1 mengandungi lajur datetime dan nilai A dan B, dan df_2 mengandungi julat nilai datetime dan maklumat acara yang sepadan, tugas biasa adalah untuk menggabungkan bingkai data ini berdasarkan syarat bahawa nilai datetime dalam df_1 terletak dalam julat yang dinyatakan dalam df_2.
Pendekatan mudah untuk mencapai ini melibatkan mencipta indeks selang dari lajur mula dan akhir df_2 dan menetapkan parameter tertutup kepada kedua-duanya. Ini memastikan bahawa julat adalah inklusif.
df_2.index = pd.IntervalIndex.from_arrays(df_2['start'],df_2['end'],closed='both')
Setelah indeks selang dibuat, kita boleh menggunakan kaedah get_loc IntervalIndex untuk mencari julat yang mengandungi nilai datetime dari df_1 untuk setiap baris.
df_1['event'] = df_1['timestamp'].apply(lambda x : df_2.iloc[df_2.index.get_loc(x)]['event'])
Dengan menggunakan fungsi ini pada setiap nilai dalam lajur datetime df_1, kita boleh mengisi lajur baharu, acara, yang mengandungi maklumat acara yang sepadan daripada df_2 untuk setiap baris dalam df_1.
Pendekatan ini menawarkan cara yang cekap untuk menyertai bingkai data berdasarkan keadaan julat dengan menggunakan keupayaan pengindeksan selang yang berkuasa yang disediakan oleh Pandas. Output akan menjadi bingkai data dengan semua lajur dari kedua-dua df_1 dan df_2, dengan lajur acara menyediakan acara yang dipadankan untuk setiap baris dalam df_1.
Atas ialah kandungan terperinci Bagaimana untuk Menyertai DataFrames Dengan Cekap Berdasarkan Julat Masa dalam Panda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!