Panda: elimina le righe in base a più condizioni


È possibile utilizzare i seguenti metodi per eliminare righe in base a più condizioni in un DataFrame panda:

Metodo 1: eliminare le righe che soddisfano una delle diverse condizioni

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

Questo particolare esempio eliminerà tutte le righe in cui il valore di col1 è uguale ad A o il valore di col2 è maggiore di 6.

Metodo 2: rimuovere le righe che soddisfano più condizioni

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

Questo particolare esempio eliminerà tutte le righe in cui il valore di col1 è uguale ad A e il valore di col2 è maggiore di 6.

I seguenti esempi mostrano come utilizzare ciascun metodo nella pratica con i seguenti DataFrame panda:

 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

Esempio 1: eliminare le righe che soddisfano una delle diverse condizioni

Il codice seguente mostra come eliminare le righe nel DataFrame in cui il valore nella colonna Team è uguale ad A o il valore nella colonna Presenze è maggiore di 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

Tieni presente che tutte le righe in cui la colonna della squadra era uguale ad A o la colonna degli assist era maggiore di 6 sono state rimosse.

Per questo particolare DataFrame, sei righe sono state eliminate.

Nota : il | il simbolo rappresenta la logica “OR” nei panda.

Esempio 2: rimuovere le righe che soddisfano più condizioni

Il codice seguente mostra come eliminare le righe nel DataFrame in cui il valore nella colonna Team è uguale ad A e il valore nella colonna Presenze è maggiore di 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

Tieni presente che tutte le righe in cui la colonna delle squadre era uguale ad A e la colonna degli assist era maggiore di 6 sono state rimosse.

Per questo particolare DataFrame, tre righe sono state eliminate.

Nota : il simbolo & rappresenta la logica “AND” nei panda.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre operazioni comuni nei panda:

Come eliminare righe contenenti un valore specifico in Pandas
Come eliminare righe contenenti una stringa specifica in Pandas
Come eliminare le righe per indice in Pandas

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *