Panda: come interrogare il nome di una colonna con uno spazio
È possibile utilizzare la seguente sintassi per eseguire una query panda utilizzando un nome di colonna con uno spazio:
df. query (' `this column` == 20 ')
Tieni presente che nella query devi utilizzare le virgolette ( ` ) anziché le virgolette doppie.
L’esempio seguente mostra come utilizzare questa sintassi nella pratica.
Esempio: colonna di query in Pandas DataFrame con spazio
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'], ' points scored ': [12, 20, 40, 20, 24, 10, 31]}) #view DataFrame print (df) team points scored 0 to 12 1 B 20 2 C 40 3 D 20 4 E 24 5 F 10 6 G 31
Supponiamo ora di voler interrogare le righe in cui la colonna dei punti contrassegnati è uguale a 20.
Se utilizziamo la funzione query() tra virgolette, riceveremo un errore:
#attempt to get rows where points scored column is equal to 20 df. query (' "points scored" == 20 ') TypeError: argument of type 'int' is not iterable
Dobbiamo invece utilizzare la funzione query() con i backtick:
#get rows where points scored column is equal to 20 df. query (' `points scored` == 20 ') team points scored 1 B 20 3 D 20
La query restituisce le due righe del DataFrame in cui la colonna dei punti contrassegnati è uguale a 20.
Tieni presente che non riceviamo alcun errore perché abbiamo utilizzato le virgolette invece delle virgolette nella funzione query() .
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni nei panda:
Panda: come filtrare le righe in base alla lunghezza della stringa
Panda: come eliminare le righe in base alla condizione
Panda: come utilizzare il filtro “NO IN”.