Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana Mengenalpasti Baris Unik dalam Pandas DataFrames Dengan Cekap Apabila Membandingkan Dua DataFrames?

Bagaimana Mengenalpasti Baris Unik dalam Pandas DataFrames Dengan Cekap Apabila Membandingkan Dua DataFrames?

Barbara Streisand
Lepaskan: 2024-12-15 21:07:13
asal
287 orang telah melayarinya

How to Efficiently Identify Unique Rows in Pandas DataFrames When Comparing Two DataFrames?

Mendapatkan Baris Unik dalam Bingkai Data Pandas

Memandangkan dua bingkai data Panda, selalunya perlu mengenal pasti baris yang wujud hanya dalam salah satu daripadanya. Ini boleh dicapai dengan berkesan dengan menggunakan operasi gabungan.

Sebagai contoh, pertimbangkan rangka data berikut:

df1 = pd.DataFrame(data={'col1': [1, 2, 3, 4, 5, 3], 'col2': [10, 11, 12, 13, 14, 10]})
df2 = pd.DataFrame(data={'col1': [1, 2, 3], 'col2': [10, 11, 12]})
Salin selepas log masuk

Untuk mendapatkan baris daripada df1 yang tidak terdapat dalam df2, kita boleh melakukan kiri-bergabung antara df1 dan df2. Untuk memastikan setiap baris dalam df1 dipadankan dengan tepat satu baris dalam df2, kita perlu mengalih keluar baris pendua daripada df2 dahulu. Kita boleh melakukannya dengan menggunakan fungsi drop_duplicates().

df_all = df1.merge(df2.drop_duplicates(), on=['col1', 'col2'], how='left', indicator=True)
Salin selepas log masuk

Df_all dataframe yang terhasil akan mempunyai lajur tambahan bernama _merge yang menunjukkan sama ada setiap baris datang daripada kedua-dua df1 dan df2 ('kedua-duanya'), daripada df1 sahaja ('left_only'), atau dari df2 sahaja ('right_only').

   col1  col2     _merge
0     1    10       both
1     2    11       both
2     3    12       both
3     4    13  left_only
4     5    14  left_only
5     3    10  left_only
Salin selepas log masuk

Untuk mengekstrak baris daripada df1 yang tidak terdapat dalam df2, kita hanya boleh memilih baris di mana _merge adalah sama dengan 'left_only':

rows_not_in_df2 = df_all[df_all['_merge'] == 'left_only']
Salin selepas log masuk
   col1  col2
0     4    13
1     5    14
2     3    10
Salin selepas log masuk

Mengelakkan Salah Pendekatan

Adalah penting untuk mengelakkan penyelesaian yang salah yang gagal mempertimbangkan baris secara keseluruhan. Sesetengah penyelesaian hanya menyemak sama ada setiap nilai individu dalam satu baris wujud dalam bingkai data lain, yang boleh membawa kepada hasil yang salah.

Sebagai contoh, jika kami telah menambah baris lain pada df1 dengan data [3, 10], yang juga terdapat dalam df2, pendekatan yang salah masih akan mengenal pasti ia tidak terdapat dalam df2 kerana ia mempunyai nilai yang berbeza dalam dua lajur. Walau bagaimanapun, pendekatan kami akan mengenal pasti dengan betul ia tidak hadir kerana ia sudah pun dalam df2 dengan nilai yang sama untuk kedua-dua lajur.

Atas ialah kandungan terperinci Bagaimana Mengenalpasti Baris Unik dalam Pandas DataFrames Dengan Cekap Apabila Membandingkan Dua DataFrames?. 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