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.