Pandas: cara membandingkan dua dataframes baris demi baris
Anda dapat menggunakan metode berikut untuk membandingkan dua panda DataFrames baris demi baris:
Metode 1: Bandingkan DataFrames dan Pertahankan Hanya Baris yang Berbeda
df_diff = df1. compare (df2, keep_equal= True , align_axis= 0 )
Metode 2: Bandingkan DataFrames dan Pertahankan Semua Baris
df_diff = df1. compare (df2, keep_equal= True , keep_shape= True , align_axis= 0 )
Contoh berikut menunjukkan cara menggunakan setiap metode dengan DataFrame panda berikut:
import pandas as pd #create first DataFrame df1 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D'], ' points ': [18, 22, 19, 14], ' assists ': [5, 7, 7, 9]}) print (df1) team points assists 0 to 18 5 1 B 22 7 2 C 19 7 3 D 14 9 #create second DataFrame df2 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'E'], ' points ': [18, 30, 19, 20], ' assists ': [5, 7, 7, 9]}) print (df2) team points assists 0 to 18 5 1 B 30 7 2 C 19 7 3 E 20 9
Contoh 1: Bandingkan DataFrames dan pertahankan hanya baris yang berbeda
Kode berikut menunjukkan cara membandingkan dua DataFrames baris demi baris dan hanya menyimpan baris yang memiliki perbedaan setidaknya dalam satu kolom:
#compare DataFrames and only keep rows with differences
df_diff = df1. compare (df2, keep_equal= True , align_axis= 0 )
#view results
print (df_diff)
team points
1 coil B 22
other B 30
3 choke D 14
other E 20
Kita dapat melihat bahwa DataFrames memiliki dua baris berbeda.
Secara khusus, kita dapat melihat bahwa baris-baris pada posisi indeks 1 dan 3 setiap DataFrame memiliki nilai yang berbeda setidaknya dalam satu kolom.
Nilai pada baris self menampilkan nilai DataFrame pertama sedangkan nilai pada baris lainnya menampilkan nilai DataFrame kedua.
Misalnya, kita dapat melihat:
- Baris pada posisi indeks 1 DataFrame pertama berisi B di kolom tim dan 22 di kolom poin.
- Baris pada posisi indeks 1 DataFrame kedua berisi B di kolom tim dan 30 di kolom poin.
Catatan : Argumen keep_equal=True memberitahu panda untuk menjaga nilai tetap sama. Jika tidak, nilai yang sama akan ditampilkan sebagai NaN.
Contoh 2: Bandingkan DataFrames dan Pertahankan Semua Baris
Kode berikut menunjukkan cara menggunakan argumen keep_shape=True untuk membandingkan dua DataFrames baris demi baris dan mempertahankan semua baris dari DataFrames asli:
#compare DataFrames and keep all rows
df_diff = df1. compare (df2, keep_equal= True , keep_shape= True , align_axis= 0 )
#view results
print (df_diff)
team points assists
0 choke A 18 5
other A 18 5
1 coil B 22 7
other B 30 7
2 choke C 19 7
other C 19 7
3 choke D 14 9
other E 20 9
DataFrame yang dihasilkan berisi semua baris dan kolom DataFrame asli.
Catatan #1 : Fungsi bandingkan() mengasumsikan bahwa kedua DataFrame memiliki dimensi yang sama.
Catatan #2: Anda dapat menemukan dokumentasi lengkap untuk fungsi pandas Compare() di sini .
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di panda:
Pandas: cara membandingkan dua kolom
Pandas: cara membandingkan tiga kolom
Pandas: cara membandingkan kolom dalam dua DataFrames yang berbeda