Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Menggabungkan Bingkai Data Pandas Dengan Cekap Berdasarkan Keadaan Julat?

Bagaimana untuk Menggabungkan Bingkai Data Pandas Dengan Cekap Berdasarkan Keadaan Julat?

Susan Sarandon
Lepaskan: 2024-10-29 11:06:30
asal
434 orang telah melayarinya

How to Efficiently Merge Pandas DataFrames Based on a Range Condition?

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

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!

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