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

Yorum ekle

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