Panda: come filtrare per valore di indice


È possibile utilizzare la seguente sintassi di base per filtrare le righe in un DataFrame panda in base ai valori dell’indice:

 df_filtered = df[df. index . isin (some_list)]

Ciò filtrerà il DataFrame di Panda per includere solo le righe i cui valori di indice sono contenuti in some_list .

Gli esempi seguenti mostrano come utilizzare questa sintassi nella pratica.

Esempio 1: filtrare in base ai valori dell’indice numerico

Supponiamo di avere i seguenti panda DataFrame:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' 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)

   points assists rebounds
0 18 5 11
1 22 7 8
2 19 7 10
3 14 9 6
4 14 12 6
5 11 9 5
6 20 9 9
7 28 4 12

Tieni presente che i valori dell’indice sono numerici.

Supponiamo di voler filtrare le righe il cui valore di indice è 1, 5, 6 o 7.

Possiamo usare la seguente sintassi per fare ciò:

 #define list of index values
some_list = [1, 5, 6, 7]

#filter for rows in list
df_filtered = df[df. index . isin (some_list)]

#view filtered DataFrame
print (df_filtered)

   points assists rebounds
1 22 7 8
5 11 9 5
6 20 9 9
7 28 4 12

Tieni presente che le uniche righe restituite sono quelle con un valore di indice pari a 1, 5, 6 o 7.

Esempio 2: filtrare in base a valori di indice non numerici

Supponiamo di avere i seguenti panda DataFrame:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' 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]},
                   index=['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'])

#view DataFrame
print (df)

   points assists rebounds
A 18 5 11
B 22 7 8
C 19 7 10
D 14 9 6
E 14 12 6
F 11 9 5
G 20 9 9
H 28 4 12

Tieni presente che i valori dell’indice sono valori di carattere.

Supponiamo di voler filtrare le righe il cui valore di indice è uguale a A, C, F o G.

Possiamo usare la seguente sintassi per fare ciò:

 #define list of index values
some_list = ['A', 'C', 'F', 'G']

#filter for rows in list
df_filtered = df[df. index . isin (some_list)]

#view filtered DataFrame
print (df_filtered)

   points assists rebounds
A 18 5 11
C 19 7 10
F 11 9 5
G 20 9 9

Tieni presente che le uniche righe restituite sono quelle con un valore di indice A, C, F o G.

Risorse addizionali

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

Come inserire una riga in un DataFrame Pandas
Come rimuovere la prima riga in Pandas DataFrame
Come eliminare le righe in Pandas DataFrame in base alle condizioni

Aggiungi un commento

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