Panda: come selezionare le righe tra due valori
È possibile utilizzare la seguente sintassi di base per selezionare le righe in un DataFrame panda in cui una colonna si trova tra due valori specifici:
df_filtered = df[df[' points ']. between ( 25 , 35 )]
Questo particolare esempio seleziona tutte le righe il cui valore nella colonna dei punti è compreso tra 25 e 35.
Se invece vuoi selezionare righe il cui valore nella colonna punti non è compreso tra 25 e 35, puoi aggiungere una tilde ( ~ ) prima del nome della colonna:
df_filtered = df[ ~ df[' points ']. between ( 25 , 35 )]
Gli esempi seguenti mostrano come utilizzare ciascun metodo nella pratica.
Esempio: seleziona le righe tra due valori in Pandas
Supponiamo di avere il seguente DataFrame panda che contiene informazioni sui punti segnati dai giocatori di basket di diverse squadre:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['Mavs', 'Mavs', 'Nets', 'Nets', 'Heat', 'Heat', 'Kings'], ' points ': [22, 28, 35, 34, 29, 28, 23]}) #view DataFrame print (df) team points 0 Mavs 22 1 Mavs 28 2 Nets 35 3 Nets 34 4 Heat 29 5 Heat 28 6 Kings 23
Possiamo utilizzare la seguente sintassi per selezionare solo le righe del DataFrame in cui il valore nella colonna dei punti è compreso tra 25 e 35:
#select rows where value in points column is between 25 and 35
df_filtered = df[df[' points ']. between ( 25 , 35 )]
#view filtered DataFrame
print (df_filtered)
team points
1 Mavs 28
2 Nets 35
3 Nets 34
4 Heat 29
5 Heat 28
Tieni presente che sono state selezionate solo le righe il cui valore nella colonna dei punti è compreso tra 25 e 35.
Tieni presente che la funzione between() include valori nei limiti inferiore e superiore.
Ad esempio, il giocatore con un valore di punti pari a 35 è stato incluso nel DataFrame filtrato.
Se invece vogliamo selezionare solo le righe il cui valore nella colonna punti non è compreso tra 25 e 35, possiamo aggiungere una tilde ( ~ ) prima del nome della colonna:
#select rows where value in points column is not between 25 and 35
df_filtered = df[ ~ df[' points ']. between ( 25 , 35 )]
#view filtered DataFrame
print (df_filtered)
team points
0 Mavs 22
6 Kings 23
Tieni presente che sono state selezionate solo le righe il cui valore nella colonna dei punti non è compreso tra 25 e 35.
Nota : puoi trovare la documentazione completa della funzione panda between() qui .
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni nei panda:
Panda: seleziona le righe in cui due colonne sono uguali
Panda: seleziona le righe da DataFrame utilizzando una serie booleana
Panda: seleziona le righe con valori NaN