Pandalar'da iki dataframe nasıl karşılaştırılır?


Çoğu zaman, benzerliklerini ve farklılıklarını tespit etmek için iki panda DataFrame arasındaki değerleri karşılaştırmak ilginizi çekebilir.

Bu eğitimde bunun nasıl yapılacağı açıklanmaktadır.

Örnek: Pandas’ta iki DataFrame’i karşılaştırma

Her biri dört basketbol oyuncusuna ilişkin verileri içeren aşağıdaki iki panda DataFrame’e sahip olduğumuzu varsayalım:

 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

Örnek 1: İki DataFrame’in aynı olup olmadığını öğrenin.

Öncelikle DataFrame.equals() işlevini kullanarak iki DataFrame’in aynı olup olmadığını öğrenebiliriz:

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

False

İki DataFrame tam olarak aynı değerleri içermediğinden bu işlev doğru bir şekilde False değerini döndürür.

Örnek 2: İki DataFrame arasındaki oyuncu istatistiklerindeki farkları bulun.

Her oyuncunun asistleri ve puanları arasındaki farkları pandas subtract() işlevini kullanarak bulabiliriz:

 #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

Bunu yorumlamanın yolu şudur:

  • Oyuncu A, her iki DataFrame’de de aynı sayıda puana sahipti ancak DataFrame 2’de 3 asist daha yaptı.
  • Oyuncu B, DataFrame 2’de DataFrame 1’e kıyasla 9 sayı ve 2 asist daha fazla elde etti.
  • Oyuncu C, DataFrame 2’de DataFrame 1’e kıyasla 9 sayı ve 3 asist daha fazla elde etti.
  • Oyuncu D, DataFrame 2’de DataFrame 1’e kıyasla 5 daha fazla sayı ve 5 daha fazla asist yaptı.

Örnek 3: Yalnızca tek bir DataFrame’de bulunan tüm satırları bulun.

Yalnızca tek bir DataFrame’de görünen satırların tam listesini almak için aşağıdaki kodu kullanabiliriz:

 #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

Bu durumda, iki DataFrame aynı satırları paylaşmaz, dolayısıyla DataFrame’lerden yalnızca birinde görünen toplamda 8 satır vardır.

“Mevcut” etiketli sütun, bize her satırın hangi DataFrame’de benzersiz şekilde göründüğünü rahatlıkla söyler.

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir