Pandalar: satırı maksimum değerde tutarken kopyalar nasıl kaldırılır


Bir pandas DataFrame’deki kopyaları kaldırmak ancak maksimum değeri içeren satırı belirli bir sütunda tutmak için aşağıdaki yöntemleri kullanabilirsiniz:

Yöntem 1: Bir Sütundaki Yinelenenleri Kaldır ve Satırı Maksimumda Tut

 df. sort_values (' var2 ', ascending= False ). drop_duplicates (' var1 '). sort_index ()

Yöntem 2: Birden Çok Sütundaki Yinelenenleri Kaldır ve Satırı Maksimumda Tut

 df. sort_values (' var3 ', ascending= False ). drop_duplicates ([' var1 ', ' var2 ']). sort_index ()

Aşağıdaki örnekler her yöntemin pratikte nasıl kullanılacağını göstermektedir.

Örnek 1: Bir sütundaki kopyaları kaldırın ve satırı Max ile koruyun

Farklı takımlardaki basketbol oyuncularının attığı puanlar hakkında bilgi içeren aşağıdaki panda DataFrame’e sahip olduğumuzu varsayalım:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
                   ' points ': [20, 24, 28, 30, 14, 19, 29, 40, 22]})

#view DataFrame
print (df)

  team points
0 to 20
1 to 24
2 to 28
3 B 30
4 B 14
5 B 19
6 C 29
7 C 40
8 C 22

Yinelenen takım adlarına sahip satırları kaldırmak ancak puanlar için maksimum değere sahip satırları tutmak için aşağıdaki sözdizimini kullanabiliriz:

 #drop duplicate teams but keeps row with max points
df_new = df. sort_values (' points ', ascending= False ). drop_duplicates (' team '). sort_index ()

#view DataFrame
print (df_new)

  team points
2 to 28
3 B 30
7 C 40

Yinelenen takım adına sahip her satır kaldırıldı, ancak maksimum puan değerine sahip satırlar her takım için tutuldu.

Örnek 2: Birden fazla sütundaki kopyaları kaldırın ve satırı Max ile koruyun

Aşağıdaki pandalara sahip olduğumuzu varsayalım DataFrame:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
                   ' position ': ['G', 'G', 'F', 'G', 'F', 'F', 'G', 'G', 'F'],
                   ' points ': [20, 24, 28, 30, 14, 19, 29, 40, 22]})

#view DataFrame
print (df)

  team position points
0 AG 20
1 GA 24
2AF 28
3 BG 30
4 BF 14
5 BF 19
6 GC 29
7 GC 40
8 CF 22

Yinelenen takım ve pozisyon adlarına sahip satırları kaldırmak, ancak puanlar için maksimum değere sahip satırları tutmak için aşağıdaki sözdizimini kullanabiliriz:

 #drop rows with duplicate team and positions but keeps row with max points
df_new = df. sort_values (' points ', ascending= False ). drop_duplicates ([' team ',' position ']). sort_index ()

#view DataFrame
print (df_new)

  team position points
1 GA 24
2AF 28
3 BG 30
5 BF 19
7 GC 40
8 CF 22

Yinelenen takım ve pozisyon adının bulunduğu her satır kaldırıldı, ancak maksimum puan değerine sahip satırlar, her takım ve pozisyon kombinasyonu için tutuldu.

Ek kaynaklar

Aşağıdaki eğitimlerde pandalarda diğer yaygın işlemlerin nasıl gerçekleştirileceği açıklanmaktadır:

Pandalar’da yinelenen satırlar nasıl kaldırılır
Pandalar’da yinelenen sütunlar nasıl kaldırılır
Pandalarda kopyalar nasıl sayılır?

Yorum ekle

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