Pandalar: birden çok koşula dayalı satırları silin
Bir pandas DataFrame’deki birden çok koşula dayalı olarak satırları silmek için aşağıdaki yöntemleri kullanabilirsiniz:
Yöntem 1: Çeşitli koşullardan birini karşılayan satırları silin
df = df. loc [ ~ ((df[' col1 '] == ' A ') | (df[' col2 '] > 6 ))]
Bu özel örnek, col1 değerinin A’ya eşit olduğu veya col2 değerinin 6’dan büyük olduğu tüm satırları silecektir.
Yöntem 2: Birden çok koşulu karşılayan satırları kaldırın
df = df. loc [ ~ ((df[' col1 '] == ' A ') & (df[' col2 '] > 6 ))]
Bu özel örnek, col1 değerinin A’ya eşit olduğu ve col2 değerinin 6’dan büyük olduğu tüm satırları silecektir.
Aşağıdaki örnekler, her yöntemin 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, 3, 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 3 9 7 B F 4 12
Örnek 1: Çeşitli koşullardan birini karşılayan satırları silin
Aşağıdaki kod, Takım sütunundaki değerin A’ya eşit olduğu veya Katılımlar sütunundaki değerin 6’dan büyük olduğu DataFrame’deki satırların nasıl silineceğini gösterir:
#drop rows where value in team column == 'A' or value in assists column > 6
df = df. loc [ ~ ((df[' team '] == ' A ') | (df[' assists '] > 6 ))]
#view updated DataFrame
print (df)
team pos assists rebounds
6 BF 3 9
7 BF 4 12
Takım sütununun A’ya eşit olduğu veya asist sütununun 6’dan büyük olduğu tüm satırların kaldırıldığını unutmayın.
Bu özel DataFrame için altı satır silindi.
Not : | sembol pandalarda “VEYA” mantığını temsil eder.
Örnek 2: Birden çok koşulu karşılayan satırları kaldırın
Aşağıdaki kod, Takım sütunundaki değerin A’ya eşit olduğu ve Katılımlar sütunundaki değerin 6’dan büyük olduğu DataFrame’deki satırların nasıl silineceğini gösterir:
#drop rows where value in team column == 'A' and value in assists column > 6
df = df. loc [ ~ ((df[' team '] == ' A ') & (df[' assists '] > 6 ))]
#view updated DataFrame
print (df)
team pos assists rebounds
0 AG 5 11
4 BG 12 6
5 BG 9 5
6 BF 3 9
7 BF 4 12
Takımlar sütununun A’ya eşit olduğu ve asist sütununun 6’dan büyük olduğu tüm satırların kaldırıldığını unutmayın.
Bu özel DataFrame için satırlardan üçü silindi.
Not : & sembolü pandalarda “VE” mantığını temsil eder.
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