Membanding DataFrames untuk Perbezaan dalam Baris
Apabila membandingkan dua bingkai data dengan baris dan lajur yang sama, operasi perbandingan mudah (df1 != df2) adalah mencukupi. Walau bagaimanapun, jika bingkai data mempunyai set baris yang berbeza, pendekatan berbeza diperlukan untuk mengenal pasti perbezaan.
Concat, Kumpulan dan Penapis
Satu kaedah untuk membandingkan bingkai data untuk perbezaan baris adalah untuk menggabungkannya, kumpulan mengikut lajur, dan menapis baris unik. Kod berikut menggambarkan ini:
<code class="python">df = pd.concat([df1, df2]) df = df.reset_index(drop=True) df_gpby = df.groupby(list(df.columns)) idx = [x[0] for x in df_gpby.groups.values() if len(x) == 1] result = df.reindex(idx)</code>
Bingkai data bercantum (df) dikumpulkan mengikut semua lajurnya (df_gpby). Kaedah 'groups.values()' mengembalikan tuple yang boleh dilelang, di mana setiap tupel mewakili indeks baris unik. Menapis tupel mengikut panjang (len(x) == 1) mengenal pasti baris yang wujud dalam hanya satu bingkai data. Akhir sekali, mengindeks semula bingkai data dengan indeks yang ditapis (idx) menghasilkan bingkai data yang mengandungi perbezaan baris.
Contoh Output
Menggunakan contoh bingkai data yang disediakan:
>>> result Date Fruit Num Color 9 2013-11-25 Orange 8.6 Orange 8 2013-11-25 Apple 22.1 Red
Output ini menunjukkan baris yang berada dalam df2 tetapi bukan dalam df1.
Atas ialah kandungan terperinci Bagaimana untuk Membandingkan DataFrames untuk Perbezaan dalam Baris?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!