Panda: seleziona le righe da dataframe utilizzando una serie booleana


È possibile utilizzare la seguente sintassi di base per selezionare le righe in un DataFrame panda in base ai valori di una serie booleana:

 #define boolean series
bools = pd. Series ([ True , False , True , True , False , False , False , True ])

#select rows in DataFrame based on values in boolean series
df[bools. values ]

Ciò consente di selezionare ciascuna delle righe nel DataFrame panda in cui il valore corrispondente nella serie Boolean è True .

L’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Esempio: seleziona righe in Pandas DataFrame utilizzando una serie booleana

Supponiamo di avere il seguente DataFrame panda che contiene informazioni su vari giocatori di basket:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
                   ' points ': [18, 22, 19, 14, 14, 11, 20, 28],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
print (df)

  team points assists rebounds
0 A 18 5 11
1 B 22 7 8
2 C 19 7 10
3 D 14 9 6
4 E 14 12 6
5 F 11 9 5
6 G 20 9 9
7:28 4 12

Possiamo utilizzare la seguente sintassi per selezionare tutte le righe nel DataFrame in cui il valore corrispondente in una serie booleana è True :

 #define boolean series
bools = pd. Series ([ True , False , True , True , False , False , False , True ])

#select rows in DataFrame based on values in boolean series
df[bools. values ]

     team points assists rebounds
0 A 18 5 11
2 C 19 7 10
3 D 14 9 6
7:28 4 12

Tieni presente che le uniche righe restituite sono quelle per cui il valore corrispondente nella serie booleana è True .

Tieni inoltre presente che puoi utilizzare la seguente sintassi per selezionare solo le righe nella colonna “punti” del DataFrame dove il valore corrispondente nella serie Booleana è True .

 #define boolean series
bools = pd. Series ([ True , False , True , True , False , False , False , True ])

#select rows in points column based on values in boolean series
df[' points '][bools. values ]

0 18
2 19
3 14
7 28
Name: points, dtype: int64

Tieni presente che le uniche righe restituite dalla colonna “punti” sono quelle in cui il valore corrispondente nella serie booleana è True .

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni nei panda:

Come filtrare le righe in base alla lunghezza della stringa in Pandas
Come selezionare le righe senza valori NaN in Panda
Come selezionare le righe in base ai valori delle colonne in Pandas

Aggiungi un commento

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