Come selezionare le righe in base a più condizioni utilizzando pandas loc


È possibile utilizzare i seguenti metodi per selezionare le righe da un DataFrame panda in base a diverse condizioni:

Metodo 1: seleziona le righe che soddisfano più condizioni

 df. loc [((df[' col1 '] == ' A ') & (df[' col2' ] == ' G '))]

Metodo 2: selezionare le righe che soddisfano una delle diverse condizioni

 df. loc [((df[' col1 '] > 10) | (df[' col2' ] < 8))]

I seguenti esempi mostrano come utilizzare ciascuno di questi metodi nella pratica con i seguenti DataFrame panda:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' position ': ['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 position 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

Metodo 1: seleziona le righe che soddisfano più condizioni

Il codice seguente mostra come selezionare solo le righe dal DataFrame in cui la squadra è uguale a “A” e la posizione è uguale a “G”:

 #select rows where team is equal to 'A' and position is equal to 'G'
df. loc [((df[' team '] == ' A ') & (df[' position '] == ' G '))]

	team position assists rebounds
0 A G 5 11
1 A G 7 8

C’erano solo due righe nel DataFrame che soddisfacevano entrambe queste condizioni.

Metodo 2: selezionare le righe che soddisfano una delle diverse condizioni

Il codice seguente mostra come selezionare solo le righe nel DataFrame in cui gli assist sono maggiori di 10 o i rimbalzi sono minori di 8:

 #select rows where assists is greater than 10 or rebounds is less than 8
df. loc [((df[' assists '] > 10) | (df[' rebounds '] < 8))]

	team position assists rebounds
3 A F 9 6
4 B G 12 6
5 B G 9 5

C’erano solo tre righe nel DataFrame che soddisfacevano entrambe queste condizioni.

Nota: in questi due esempi abbiamo filtrato le righe in base a due condizioni, ma utilizzando & e | attributi . operatori, possiamo filtrare tutte le condizioni che vogliamo.

Risorse addizionali

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

Come creare una nuova colonna basata su una condizione in Pandas
Come eliminare righe contenenti un valore specifico in Pandas
Come rimuovere le righe duplicate in Pandas

Aggiungi un commento

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