Pandy: usuń wiersze na podstawie wielu warunków


Możesz użyć następujących metod, aby usunąć wiersze na podstawie wielu warunków w ramce DataFrame pandy:

Metoda 1: Usuń wiersze spełniające jeden z kilku warunków

 df = df. loc [ ~ ((df[' col1 '] == ' A ') | (df[' col2 '] > 6 ))]

Ten konkretny przykład usunie wszystkie wiersze, w których wartość col1 jest równa A lub wartość col2 jest większa niż 6.

Metoda 2: Usuń wiersze spełniające wiele warunków

 df = df. loc [ ~ ((df[' col1 '] == ' A ') & (df[' col2 '] > 6 ))] 

Ten konkretny przykład usunie wszystkie wiersze, w których wartość col1 jest równa A , a wartość col2 jest większa niż 6.

Poniższe przykłady pokazują, jak w praktyce używać każdej metody z następującą ramką DataFrame pand:

 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

Przykład 1: Usuń wiersze spełniające jeden z kilku warunków

Poniższy kod pokazuje, jak usunąć wiersze w ramce danych, gdzie wartość w kolumnie Zespół jest równa A lub wartość w kolumnie Obecność jest większa niż 6:

 #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

Należy pamiętać, że wszystkie wiersze, w których kolumna drużyny była równa A lub kolumna asyst była większa niż 6, zostały usunięte.

W przypadku tej konkretnej ramki danych usunięto sześć wierszy.

Uwaga : | symbol reprezentuje logikę „LUB” w pandach.

Przykład 2: Usuń wiersze spełniające wiele warunków

Poniższy kod pokazuje, jak usunąć wiersze w ramce danych, gdzie wartość w kolumnie Zespół jest równa A , a wartość w kolumnie Obecność jest większa niż 6:

 #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

Należy pamiętać, że wszystkie wiersze, w których kolumna drużyn była równa A, a kolumna asyst była większa niż 6, zostały usunięte.

W przypadku tej konkretnej ramki danych trzy wiersze zostały usunięte.

Uwaga : symbol & reprezentuje logikę „AND” w pandach.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje na pandach:

Jak usunąć wiersze zawierające określoną wartość w Pandach
Jak usunąć wiersze zawierające określony ciąg w Pandach
Jak usunąć wiersze według indeksu w Pandach

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *