Pandy: jak zapytać o nazwę kolumny ze spacją
Możesz użyć następującej składni, aby wykonać zapytanie pand, używając nazwy kolumny ze spacją:
df. query (' `this column` == 20 ')
Pamiętaj, że w zapytaniu należy użyć cudzysłowów ( ` ), a nie podwójnych cudzysłowów.
Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.
Przykład: kolumna zapytania w Pandas DataFrame ze spacją
Załóżmy, że mamy następującą ramkę danych pand, która zawiera informacje o różnych koszykarzach:
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
Załóżmy teraz, że chcemy wysłać zapytanie do wierszy, w których kolumna zaznaczonych punktów jest równa 20.
Jeżeli użyjemy funkcji query() z cudzysłowami otrzymamy błąd:
#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
Zamiast tego musimy użyć funkcji query() z backtickami:
#get rows where points scored column is equal to 20 df. query (' `points scored` == 20 ') team points scored 1 B 20 3 D 20
Zapytanie zwraca dwa wiersze DataFrame, gdzie kolumna zaznaczonych punktów wynosi 20.
Zauważ, że nie otrzymaliśmy żadnych błędów, ponieważ w funkcji query() użyliśmy cudzysłowów zamiast cudzysłowów.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w pandach:
Pandy: Jak filtrować wiersze na podstawie długości łańcucha
Pandy: Jak usuwać wiersze na podstawie warunku
Pandy: Jak korzystać z filtra „NO IN”.