Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Cekap Mencari Perbezaan Antara Dua Pandas DataFrames?

Bagaimana untuk Cekap Mencari Perbezaan Antara Dua Pandas DataFrames?

Linda Hamilton
Linda Hamiltonasal
2024-11-22 06:14:09393semak imbas

How to Efficiently Find the Difference Between Two Pandas DataFrames?

Cara Mencari Perbezaan Antara Dua Bingkai Data

Selalunya apabila bekerja dengan data, kita mungkin mempunyai dua bingkai data yang mengandungi maklumat bertindih tetapi juga mengandungi baris atau lajur unik. Untuk mendapatkan bingkai data yang merangkumi hanya baris dan lajur yang terdapat dalam satu bingkai data dan bukan yang lain, kami perlu melakukan operasi perbezaan bingkai data.

Untuk mencapai ini, kami boleh menggunakan fungsi drop_duplicates dengan keep=False parameter, yang secara berkesan mengalih keluar mana-mana baris pendua daripada bingkai data yang digabungkan:

pd.concat([df1,df2]).drop_duplicates(keep=False)

Walau bagaimanapun, kaedah ini menganggap bahawa kedua-dua bingkai data bebas daripada pendua. Jika pendua wujud dalam bingkai data asal, kaedah di atas akan mengalih keluarnya secara tidak sengaja. Untuk mengendalikan senario ini, kita boleh menggunakan salah satu daripada dua pendekatan alternatif:

Kaedah 1: Menggunakan isin dengan Tuples

Kaedah ini melibatkan mencipta tuple untuk setiap baris dalam bingkai data dan kemudian menggunakan isin untuk menyemak sama ada tuple dari df1 wujud dalam df2. Baris yang wujud hanya dalam df1 dikekalkan:

df1[~df1.apply(tuple,1).isin(df2.apply(tuple,1))]

Kaedah 2: Gabung dengan Penunjuk

Dengan menggabungkan dua bingkai data dengan parameter penunjuk sebagai Benar, kita boleh mencipta lajur baharu yang menunjukkan baris mana yang unik sama ada df1 atau df2. Baris yang unik kepada df1 kemudiannya boleh ditapis keluar dengan memilih baris di mana nilai lajur _cantum tinggal_sahaja:

df1.merge(df2,indicator = True, how='left').loc[lambda x : x['_merge']!='both']

Dengan melaksanakan teknik ini, anda boleh menentukan perbezaan antara dua bingkai data dengan cekap, memastikan bahawa anda mempunyai bingkai data yang mengandungi hanya maklumat unik daripada setiap bingkai data.

Atas ialah kandungan terperinci Bagaimana untuk Cekap Mencari Perbezaan Antara Dua Pandas DataFrames?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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