Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Menyertai DataFrames Dengan Cekap Berdasarkan Julat Masa dalam Panda?

Bagaimana untuk Menyertai DataFrames Dengan Cekap Berdasarkan Julat Masa dalam Panda?

DDD
Lepaskan: 2024-12-13 05:42:09
asal
158 orang telah melayarinya

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

Menyertai Bingkai Data dengan Nilai Lajur dalam Julat

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')
Salin selepas log masuk

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'])
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan