Panda: come trovare la prima riga che soddisfa i criteri
È possibile utilizzare la seguente sintassi per trovare la prima riga di un DataFrame panda che soddisfa criteri specifici:
#get first row where value in 'team' column is equal to 'B' df[df. team == ' B ']. iloc [0] #get index of first row where value in 'team' column is equal to 'B' df[df. team == ' B ']. index [0]
I seguenti esempi mostrano come utilizzare questa sintassi in pratica con i seguenti DataFrame panda:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'C', 'C', 'C'], ' points ': [18, 13, 19, 14, 24, 21, 20, 28], ' assists ': [5, 7, 17, 9, 12, 9, 5, 12]}) #view DataFrame print (df) team points assists 0 to 18 5 1 to 13 7 2 A 19 17 3 B 14 9 4 B 24 12 5 C 21 9 6 C 20 5 7 C 28 12
Esempio 1: trova la prima riga che soddisfa un criterio
Possiamo utilizzare la seguente sintassi per trovare la prima riga in cui il valore nella colonna della squadra è uguale a “B”:
#find first row where team is equal to 'B' df[df. team == ' B ']. iloc [0] team B points 14 assists 9 Name: 3, dtype: object #find index of first row where team is equal to 'B' df[df. team == ' B ']. index [0] 3
Possiamo vedere che la prima riga in cui il valore nella colonna della squadra è uguale a “B” si trova nella posizione dell’indice 3.
Esempio 2: trova la prima riga che soddisfa più criteri
Possiamo utilizzare la seguente sintassi per trovare la prima riga in cui il valore nella colonna dei punti è maggiore di 15 e il valore nella colonna degli assist è maggiore di 10:
#find first row where points > 15 and assists > 10 df[(df. points > 15) & (df. assists > 10)]. iloc [0] team A points 19 assists 17 Name: 2, dtype: object #find index of first row where points > 15 and assists > 10 df[(df. points > 15) & (df. assists > 10)]. index [0] 2
Possiamo vedere che la prima riga in cui il valore nella colonna dei punti è maggiore di 15 e il valore nella colonna degli assist è maggiore di 10 si trova nella posizione dell’indice 2.
Esempio 3: trova la prima riga che soddisfa uno dei tanti criteri
Possiamo utilizzare la seguente sintassi per trovare la prima riga in cui il valore nella colonna dei punti è maggiore di 15 o il valore nella colonna degli assist è maggiore di 10:
#find first row where points > 15 or assists > 10 df[(df. points > 15) | (df. assists > 10)]. iloc [0] team A points 18 assists 5 Name: 0, dtype: object #find index of first row where points > 15 or assists > 10 df[(df. points > 15) | (df. assists > 10)]. index [0] 0
Possiamo vedere che la prima riga in cui il valore nella colonna dei punti è maggiore di 15 o il valore nella colonna degli assist è maggiore di 10 si trova nella posizione dell’indice 0.
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni nei panda:
Come selezionare le righe senza valori NaN in Panda
Come selezionare le righe in base ai valori delle colonne in Pandas
Come selezionare singole righe in Panda