Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mencari Baris Hadir dalam Satu Bingkai Data tetapi Tidak dalam Yang Lain (Membandingkan df1 dan 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!