Bagaimana membandingkan dua dataframes di pandas


Seringkali, Anda mungkin tertarik untuk membandingkan nilai antara dua panda DataFrames untuk menemukan persamaan dan perbedaannya.

Tutorial ini menjelaskan cara melakukannya.

Contoh: Membandingkan dua DataFrame di Pandas

Misalkan kita mempunyai dua panda DataFrames berikut, yang masing-masing berisi data empat pemain bola basket:

 import pandas as pd

#define DataFrame 1
df1 = pd. DataFrame ({'player': ['A', 'B', 'C', 'D'],
                   'points': [12, 15, 17, 24],
                   'assists': [4, 6, 7, 8]})
df1


        player points assists
0 to 12 4
1 B 15 6
2 C 17 7
3 D 24 88

#define DataFrame 2
df2 = pd. DataFrame ({'player': ['A', 'B', 'C', 'D'],
                    'points': [12, 24, 26, 29],
                    'assists': [7, 8, 10, 13]})
df2

	player points assists
0 to 12 7
1 B 24 8
2 C 26 10
3 D 29 13

Contoh 1: Cari tahu apakah kedua DataFrame itu sama.

Pertama-tama kita dapat mengetahui apakah kedua DataFrame identik menggunakan fungsi DataFrame.equals() :

 #see if two DataFrames are identical
df1. equals (df2)

False

Kedua DataFrame tidak berisi nilai yang sama persis, sehingga fungsi ini mengembalikan False dengan benar.

Contoh 2: Temukan perbedaan statistik pemain antara kedua DataFrame.

Kita dapat menemukan perbedaan antara assist dan poin masing-masing pemain menggunakan fungsi pandas subtract() :

 #subtract df1 from df2
df2. set_index ('player'). subtract (df1.set_index('player'))

	assist points
player		
At 0 3
B 9 2
C 9 3
D 5 5

Cara menafsirkannya adalah:

  • Pemain A memiliki jumlah poin yang sama di kedua DataFrame, namun dia mendapat 3 assist lebih banyak di DataFrame 2.
  • Pemain B memperoleh 9 poin lebih banyak dan 2 assist lebih banyak di DataFrame 2 dibandingkan dengan DataFrame 1.
  • Pemain C memperoleh 9 poin lebih banyak dan 3 assist lebih banyak di DataFrame 2 dibandingkan dengan DataFrame 1.
  • Pemain D mendapat 5 poin lebih banyak dan 5 assist lebih banyak di DataFrame 2 dibandingkan dengan DataFrame 1.

Contoh 3: Temukan semua baris yang hanya ada dalam satu DataFrame.

Kita dapat menggunakan kode berikut untuk mendapatkan daftar lengkap baris yang hanya muncul dalam satu DataFrame:

 #outer merge the two DataFrames, adding an indicator column called 'Exist'
diff_df = pd. merge (df1, df2, how=' outer ', indicator=' Exist ')

#find which rows don't exist in both DataFrames
diff_df = diff_df. loc [diff_df[' Exist '] != ' both ']
diff_df

	player points assists Exist
0 A 12 4 left_only
1 B 15 6 left_only
2 C 17 7 left_only
3 D 24 8 left_only
4 A 12 7 right_only
5 B 24 8 right_only
6 C 26 10 right_only
7 D 29 13 right_only

Dalam hal ini, kedua DataFrame tidak berbagi baris yang sama, sehingga ada total 8 baris yang hanya muncul di salah satu DataFrame.

Kolom berlabel “Ada” dengan mudah memberi tahu kita di DataFrame mana setiap baris muncul secara unik.

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *