Pandas dataframe'deki satırlar duruma göre nasıl silinir
Koşula bağlı olarak bir panda DataFrame’deki satırları silmek için aşağıdaki sözdizimini kullanabiliriz:
Yöntem 1: Tek bir koşula göre satırları silin
df = df[df. col1 > 8]
Yöntem 2: Birden çok koşula göre satırları silin
df = df[(df. col1 > 8) & (df. col2 != ' A ')]
Not : Bir DataFrame’den satır çıkarmak için drop() işlevini de kullanabiliriz, ancak bu işlevin, DataFrame’i kendisinin filtrelenmiş bir sürümüne atamaktan çok daha yavaş olduğu kanıtlanmıştır.
Aşağıdaki örnekler, bu sözdiziminin pratikte aşağıdaki pandalar DataFrame ile nasıl kullanılacağını gösterir:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], ' pos ': ['G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'], ' assists ': [5, 7, 7, 9, 12, 9, 9, 4], ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]}) #view DataFrame df team pos assists rebounds 0 A G 5 11 1 A G 7 8 2 A F 7 10 3 A F 9 6 4 B G 12 6 5 B G 9 5 6 B F 9 9 7 B F 4 12
Yöntem 1: Tek bir koşula göre satırları silin
Aşağıdaki kod, bir koşula göre DataFrame’deki satırların nasıl silineceğini gösterir:
#drop rows where value in 'assists' column is less than or equal to 8
df = df[df. assists > 8]
#view updated DataFrame
df
team pos assists rebounds
3 A F 9 6
4 B G 12 6
5 B G 9 5
6 B F 9 9
“Yardım” sütununda 8’den küçük veya 8’e eşit değere sahip tüm satırlar DataFrame’den kaldırılmıştır.
Yöntem 2: Birden çok koşula göre satırları silin
Aşağıdaki kod, çeşitli koşullara göre DataFrame’deki satırların nasıl silineceğini gösterir:
#only keep rows where 'assists' is greater than 8 and rebounds is greater than 5
df = df[(df. assists > 8) & (df. rebounds > 5)]
#view updated DataFrame
df
team pos assists rebounds
3 A F 9 6
4 B G 12 6
5 B G 9 5
6 B F 9 9
DataFrame’de tuttuğumuz satırlar, asist değerinin 8’den büyük ve ribaund değerinin 5’ten büyük olduğu satırlardı.
Ayrıca |’ ı da kullanabileceğimizi unutmayın. “veya” filtresini uygulayacak operatör:
#only keep rows where 'assists' is greater than 8 or rebounds is greater than 10
df = df[(df. assists > 8) | (df. rebounds > 10)]
#view updated DataFrame
df
team pos assists rebounds
0 A G 5 11
3 A F 9 6
4 B G 12 6
5 B G 9 5
6 B F 9 9
7 B F 4 12
DataFrame’de tuttuğumuz satırlar yalnızca destek değerinin 8’den büyük olduğu veya geri tepme değerinin 10’dan büyük olduğu satırlardı.
Bu koşullardan birini karşılamayan tüm satırlar silindi.
Ek kaynaklar
Aşağıdaki eğitimlerde pandalarda diğer yaygın işlemlerin nasıl gerçekleştirileceği açıklanmaktadır:
Pandalarda belirli bir değer içeren satırlar nasıl silinir
Pandalar’da belirli bir dize içeren satırlar nasıl silinir
Pandalarda dizine göre satırlar nasıl silinir