Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Menyertai Pandas DataFrames Berdasarkan Julat Cap Masa?

Bagaimana untuk Menyertai Pandas DataFrames Berdasarkan Julat Cap Masa?

Barbara Streisand
Lepaskan: 2024-12-09 00:16:11
asal
816 orang telah melayarinya

How to Join Pandas DataFrames Based on Timestamp Ranges?

Menyertai Bingkai Data Berdasarkan Julat Nilai

Memandangkan dua bingkai data, df_1 dan df_2, adalah mungkin untuk menyertainya supaya cap masa lajur datetime dalam df_1 berada dalam julat tertentu yang ditakrifkan oleh lajur bermula dan berakhir df_2.

Untuk menyelesaikan tugasan ini, satu pendekatan ialah mencipta indeks selang dari lajur mula dan akhir, menetapkan pilihan tertutup kepada kedua-duanya untuk memastikan sempadan inklusif. Menggunakan indeks selang ini, kita boleh menggunakan get_loc untuk mendapatkan peristiwa yang sepadan bagi setiap cap waktu dalam df_1.

Contoh:

import pandas as pd

# Input dataframes
df_1 = pd.DataFrame({
    'timestamp': ['2016-05-14 10:54:33', '2016-05-14 10:54:34', '2016-05-14 10:54:35', '2016-05-14 10:54:36', '2016-05-14 10:54:39'],
    'A': [0.020228, 0.057780, 0.098808, 0.158789, 0.038129],
    'B': [0.026572, 0.175499, 0.620986, 1.014819, 2.384590]
})

df_2 = pd.DataFrame({
    'start': ['2016-05-14 10:54:31', '2016-05-14 10:54:34', '2016-05-14 10:54:38'],
    'end': ['2016-05-14 10:54:33', '2016-05-14 10:54:37', '2016-05-14 10:54:42'],
    'event': ['E1', 'E2', 'E3']
})

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

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

# Output joined dataframe
print(df_1)
Salin selepas log masuk

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

Atas ialah kandungan terperinci Bagaimana untuk Menyertai Pandas DataFrames Berdasarkan Julat Cap Masa?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan