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!