Pandalar: bir dataframe'deki satırın diğerinde olup olmadığını kontrol edin


Pandas DataFrame’e, her satırın başka bir DataFrame’de mevcut olup olmadığını belirten yeni bir sütun eklemek için aşağıdaki sözdizimini kullanabilirsiniz:

 #merge two DataFrames on specific columns
all_df = pd. merge (df1, df2, on=[' column1 ', ' column2 '], how=' left ', indicator=' exists ')

#drop unwanted columns
all_df = all_df. drop (' column3 ', axis= 1 )

#add column that shows if each row in one DataFrame exists in another
all_df[' exists '] = np. where (all_df. exists == ' both ', True , False )

Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.

Örnek: bir Pandas DataFrame’deki satırın diğerinde olup olmadığını kontrol edin

Aşağıdaki iki panda DataFrame’e sahip olduğumuzu varsayalım:

 import pandas as pd

#create first DataFrame
df1 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E'], 
                    ' points ': [12, 15, 22, 29, 24]}) 

print (df1)

  team points
0 to 12
1 B 15
2 C 22
3 D 29
4 E 24

#create second DataFrame
df2 = pd. DataFrame ({' team ': ['A', 'D', 'F', 'G', 'H'],
                    ' points ': [12, 29, 15, 19, 10],
                    ' assists ': [4, 7, 7, 10, 12]})

print (df2)

  team points assists
0 to 12 4
1 D 29 7
2 F 15 7
3 G 19 10
4:10:12

İlk DataFrame’e, takımdaki her bir değerin ve her satırdaki puanlar sütununun ikinci DataFrame’de mevcut olup olmadığını gösteren bir sütun eklemek için aşağıdaki sözdizimini kullanabiliriz:

 import numpy as np

#merge two dataFrames and add indicator column
all_df = pd. merge (df1, df2, on=[' team ', ' points '], how=' left ', indicator=' exists ')

#drop assists columns
all_df = all_df. drop (' assists ', axis= 1 )

#add column to show if each row in first DataFrame exists in second
all_df[' exists '] = np. where (all_df. exists == ' both ', True , False )

#view updated DataFrame
print (all_df)

  team points exists
0 A 12 True
1 B 15 False
2 C 22 False
3 D 29 True
4 E 24 False

Yeni sütun mevcut, her satırdaki takım ve puan sütunundaki her değerin ikinci DataFrame’de mevcut olup olmadığını gösterir.

Sonuçtan şunları görebiliriz:

  • İkinci DataFrame’de A takım değeri ve 12 puan değeri mevcuttur.
  • İkinci DataFrame’de B takım değeri ve 15 puan değeri mevcut değildir.
  • İkinci DataFrame’de C takım değeri ve 22 puan değeri mevcut değildir.
  • İkinci DataFrame’de D takım değeri ve 29 puan değeri mevcuttur.
  • İkinci DataFrame’de E takım değeri ve 24 puan değeri mevcut değildir.

Ayrıca NumPy Where() fonksiyonundaki değerleri değiştirerek mevcut sütunda True ve False dışındaki değerleri de belirtebileceğinizi unutmayın.

Örneğin, bunun yerine “var” ve “mevcut değil” ifadelerini şu şekilde kullanabilirsiniz:

 #add column to show if each row in first DataFrame exists in second
all_df[' exists '] = np. where (all_df. exists == ' both ', ' exists ', ' not exists ')

#view updated DataFrame
print (all_df)

  team points exists
0 to 12 exists
1 B 15 not exists
2 C 22 not exists
3 D 29 exists
4 E 24 not exists

Mevcut sütundaki değerlerin değiştirildiğini unutmayın.

Ek kaynaklar

Aşağıdaki eğitimlerde pandalarda diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:

Pandalar: bir DataFrame’den diğerine sütun ekleyin
Pandalar: Başka bir DataFrame’de olmayan satırları alın
Pandalar: birden fazla sütunun eşit olup olmadığı nasıl kontrol edilir

Yorum ekle

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