Sertai mengikut Julat dalam Panda
Dalam manipulasi data menggunakan Panda, satu tugas biasa ialah menggabungkan dua bingkai data berdasarkan keadaan julat. Ini melibatkan mengenal pasti baris dalam bingkai data A di mana nilai dalam lajur tertentu terletak dalam julat tertentu dalam bingkai data B.
Satu pendekatan untuk tugas ini melibatkan mencipta lajur tiruan dalam kedua-dua bingkai data, melakukan sambung silang menggunakan lajur tiruan ini, dan kemudian menapis keluar baris yang tidak memenuhi kriteria julat. Walau bagaimanapun, kaedah ini boleh menjadi tidak cekap untuk set data yang besar.
Penyelesaian alternatif ialah menggunakan penyiaran numpy, yang merupakan teknik yang berkuasa untuk melaksanakan operasi mengikut unsur pada tatasusunan. Dengan menukar lajur yang berkaitan dalam bingkai data A dan B kepada tatasusunan numpy, kami boleh menggunakan operator logik untuk membandingkan A_value dengan nilai B_low dan B_high untuk mengenal pasti baris yang memenuhi syarat julat.
import numpy as np # Convert to numpy arrays a = A.A_value.values bh = B.B_high.values bl = B.B_low.values # Find intersecting indices i, j = np.where((a[:, None] >= bl) & (a[:, None] <= bh)) # Merge and align dataframes result = pd.concat([ A.loc[i, :].reset_index(drop=True), B.loc[j, :].reset_index(drop=True) ], axis=1) print(result)
Kaedah ini menawarkan kecekapan yang lebih besar untuk set data yang besar berbanding dengan pendekatan lajur tiruan. Selain itu, ia membolehkan pelaksanaan mudah gabungan kiri atau kanan dengan melaraskan logik dalam langkah penyiaran numpy.
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Bingkai Data Pandas Dengan Cekap Berdasarkan Keadaan Julat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!