Mencari Perbezaan Antara Dua Bingkai Data
Apabila bekerja dengan bingkai data panda, adalah perkara biasa untuk mempunyai situasi di mana anda perlu membandingkan dua bingkai data dan ekstrak perbezaan antara mereka. Sebagai contoh, anda mungkin mempunyai bingkai data asas (df1) dan bingkai data subset (df2) dan ingin mencipta bingkai data baharu (df3) yang mengandungi semua baris dan lajur dalam df1 yang tidak terdapat dalam df2.
Menggunakan drop_duplicates
Kaedah paling langsung untuk mencapai ini adalah dengan menggunakan fungsi drop_duplicates. Dengan menggabungkan df1 dan df2, dan kemudian menggunakan drop_duplicates pada bingkai data yang digabungkan, anda boleh menghapuskan baris pendua dan mendapatkan bingkai data yang mengandungi hanya baris unik.
pd.concat([df1, df2]).drop_duplicates(keep=False)
Mengendalikan Pendua
Walau bagaimanapun, jika sama ada df1 atau df2 sendiri mengandungi pendua baris, pendekatan drop_duplicates boleh menghasilkan output yang salah. Untuk menangani perkara ini, anda boleh menggunakan kaedah alternatif yang mengekalkan pendua asal:
Kaedah 1: Menggunakan isin dengan tuple
Kaedah ini melibatkan penukaran setiap baris bingkai data menjadi tupel dan menyemak sama ada tupel hadir dalam kedua-dua bingkai data. Baris yang tidak sepadan dengan mana-mana tuple dalam bingkai data lain akan disertakan dalam bingkai data perbezaan.
df1[~df1.apply(tuple, 1).isin(df2.apply(tuple, 1))]
Kaedah 2: Gabung dengan penunjuk
Satu lagi pendekatan melibatkan penggabungan df1 dan df2 menggunakan lajur penunjuk. Dengan menyatakan how='left' dalam cantuman, baris daripada df1 yang tidak mempunyai baris yang sepadan dalam df2 akan diberikan nilai lajur _merge left_only. Anda kemudiannya boleh menapis baris berdasarkan lajur penunjuk ini untuk mendapatkan bingkai data perbezaan.
df1.merge(df2, indicator=True, how='left').loc[lambda x: x['_merge'] != 'both']
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencari Perbezaan Antara Dua Bingkai Data Panda dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!