Panda: come selezionare colonne contenenti una stringa specifica


È possibile utilizzare i seguenti metodi per selezionare colonne contenenti una stringa particolare in un DataFrame panda:

Metodo 1: seleziona le colonne contenenti una stringa specifica

 df. filter (regex=' string1 ')

Metodo 2: selezionare le colonne contenenti una delle numerose stringhe

 df. filter (regex=' string1|string2|string3 ')

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 ({' mavs ': [10, 12, 14, 15, 19, 22, 27],
                   ' cavs ': [18, 22, 19, 14, 14, 11, 20],
                   ' hornets ': [5, 7, 7, 9, 12, 9, 14],
                   ' spurs ': [10, 12, 14, 13, 13, 19, 22],
                   ' net ': [10, 14, 25, 22, 25, 17, 12]})

#view DataFrame
print (df)

   mavs cavs hornets spurs nets
0 10 18 5 10 10
1 12 22 7 12 14
2 14 19 7 14 25
3 15 14 9 13 22
4 19 14 12 13 25
5 22 11 9 19 17
6 27 20 14 22 12

Esempio 1: seleziona colonne contenenti una stringa specifica

Il codice seguente mostra come utilizzare la funzione filter() per selezionare solo le colonne che contengono la stringa “avs” da qualche parte nel nome:

 #select columns that contain 'avs' in the name
df2 = df. filter (regex=' avs ')

#view DataFrame
print (df2)

   mavs cavs
0 10 18
1 12 22
2 14 19
3 15 14
4 19 14
5 22 11
6 27 20

Vengono restituite solo le colonne con “avs” nel nome.

In questo caso “mavs” e “cavs” sono le uniche colonne restituite.

Esempio 2: selezionare colonne contenenti una delle numerose stringhe

Il codice seguente mostra come utilizzare la funzione filter() per selezionare solo le colonne che contengono “avs” o “ets” da qualche parte nel nome:

 #select columns that contain 'avs' in the name
df2 = df. filter (regex=' avs|ets ')

#view DataFrame
print (df2)

   mavs cavs hornets nets
0 10 18 5 10
1 12 22 7 14
2 14 19 7 25
3 15 14 9 22
4 19 14 12 25
5 22 11 9 17
6 27 20 14 12

Vengono restituite solo le colonne con “avs” o “ets” nel nome.

Nota che la barra verticale ( | ) è l’operatore ” OR ” in panda.

Sentiti libero di concatenare tutti gli operatori “OR” che desideri per selezionare colonne contenenti una delle tante stringhe diverse.

Risorse addizionali

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

Panda: come spostare una colonna davanti al DataFrame
Panda: come verificare se la colonna contiene una stringa
Panda: come aggiungere una colonna vuota a DataFrame (3 esempi)

Aggiungi un commento

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