Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Mencari Baris Unik dengan Cekap dalam DataFrame1 Yang Tiada dalam DataFrame2?

Bagaimanakah Saya Boleh Mencari Baris Unik dengan Cekap dalam DataFrame1 Yang Tiada dalam DataFrame2?

Susan Sarandon
Lepaskan: 2024-11-21 07:28:10
asal
687 orang telah melayarinya

How Can I Efficiently Find the Unique Rows in DataFrame1 That Are Not in DataFrame2?

Mencari Perbezaan Antara Dua DataFrames

Dalam analisis data, mengenal pasti percanggahan antara set data adalah penting. Katakan anda mempunyai dua bingkai data, df1 dan df2, dengan df2 ialah subset bagi df1. Untuk mendapatkan semula baris dan lajur unik yang terdapat dalam df1 tetapi tidak dalam df2 dengan cekap, anda boleh memanfaatkan konsep perbezaan set.

Pendekatan: Menggunakan pd.concat dan drop_duplicates**

Pendekatan utama melibatkan penggabungan kedua-dua bingkai data menggunakan pd.concat dan seterusnya menghapuskan baris atau lajur pendua menggunakan drop_duplicates. Dengan menetapkan keep=False, ia memastikan bahawa hanya baris atau lajur yang wujud semata-mata dalam df1 dikekalkan.

df3 = pd.concat([df1, df2]).drop_duplicates(keep=False)
Salin selepas log masuk

Kaveat: Mengendalikan Pendua

Walau bagaimanapun, ini kaedah menganggap bahawa kedua-dua kerangka data itu sendiri tidak mengandungi nilai pendua. Jika mereka melakukannya, hasilnya boleh menjadi tidak tepat. Untuk menangani perkara ini, kita boleh menggunakan pendekatan alternatif berikut:

Kaedah 1: Menggunakan isin dengan Tuple

Kaedah ini melibatkan penukaran setiap baris menjadi tuple menggunakan df.apply(tuple, 1) dan kemudian semak jika tupel hadir dalam df2 menggunakan df.apply(tuple, 1).isin(df2.apply(tuple, 1)). Bingkai data yang terhasil akan mengandungi baris unik daripada df1 yang tiada dalam df2.

df1[~df1.apply(tuple, 1).isin(df2.apply(tuple, 1))]
Salin selepas log masuk

Kaedah 2: Bercantum dengan Penunjuk

Pendekatan lain ialah menggabungkan df1 dengan df2 menggunakan pd.merge dengan penunjuk untuk mengenal pasti baris yang wujud hanya dalam df1. Dengan menggunakan fungsi lambda, kita boleh menapis baris yang lajur '_merge' tidak sama dengan 'kedua-duanya'.

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

Kesimpulan

Dengan menggunakan ini teknik, anda boleh mencari perbezaan antara dua bingkai data dengan berkesan dan mendapatkan cerapan tentang titik data unik yang terdapat dalam setiap bingkai data.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencari Baris Unik dengan Cekap dalam DataFrame1 Yang Tiada dalam DataFrame2?. 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