Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mencari Baris Hadir dalam Satu Bingkai Data tetapi Tidak dalam Yang Lain (Membandingkan df1 dan df2)?

Bagaimana untuk Mencari Baris Hadir dalam Satu Bingkai Data tetapi Tidak dalam Yang Lain (Membandingkan df1 dan df2)?

Susan Sarandon
Susan Sarandonasal
2024-10-19 21:07:03579semak imbas

How to Find Rows Present in One Dataframe but Not in Another (Comparing df1 and df2)?

Membandingkan Bingkai Data: Mencari Baris Hadir dalam Satu tetapi Tidak Dalam Yang Lain

Membandingkan bingkai data untuk mengenal pasti perbezaan adalah penting untuk jaminan kualiti data dan penggabungan operasi. Dalam kes ini, kami mempunyai dua bingkai data (df1 dan df2) dengan struktur khusus dan perlu menentukan baris yang terdapat dalam df2 tetapi tidak dalam df1.

Pada mulanya, percubaan untuk membandingkan bingkai data menggunakan df1 != df2 menghasilkan satu kesilapan. Pendekatan ini hanya berfungsi untuk bingkai data dengan baris dan lajur yang sama. Untuk mencari perbezaan simetri, kami memerlukan pendekatan yang berbeza.

Satu kaedah melibatkan penggabungan bingkai data:

df = pd.concat([df1, df2])
df = df.reset_index(drop=True)

Kemudian, kumpulkan bingkai data yang digabungkan mengikut semua lajur:

df_gpby = df.groupby(list(df.columns))

Seterusnya, kami mengenal pasti rekod unik dengan mendapatkan nilai indeks di mana hanya satu baris wujud:

idx = [x[0] for x in df_gpby.groups.values() if len(x) == 1]

Menggunakan indeks ini, kami boleh menapis bingkai data untuk mendapatkan hasil yang diingini:

df.reindex(idx)

Pendekatan ini menyediakan baris yang hadir dalam df2 tetapi tiada dalam df1 berdasarkan perbandingan indeks Tarikh dan lajur Buah.

Atas ialah kandungan terperinci Bagaimana untuk Mencari Baris Hadir dalam Satu Bingkai Data tetapi Tidak dalam Yang Lain (Membandingkan df1 dan df2)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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