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]})
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)
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
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']
col1 col2 0 4 13 1 5 14 2 3 10
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!