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?