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

Susan Sarandon
Lepaskan: 2024-10-19 21:07:03
asal
577 orang telah melayarinya

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)
Salin selepas log masuk

Kemudian, kumpulkan bingkai data yang digabungkan mengikut semua lajur:

df_gpby = df.groupby(list(df.columns))
Salin selepas log masuk

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]
Salin selepas log masuk

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

df.reindex(idx)
Salin selepas log masuk

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!

sumber:php
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!