
Jeśli pracujesz z biblioteką Pandas w Pythonie i często filtrujesz dane w DataFrame, to pewnie wiesz, że standardowe podejście z wykorzystaniem nawiasów kwadratowych może być nieco rozwlekłe. Na szczęście, Pandas oferuje elegancką i czytelną metodę query(), która pozwala filtrować dane w sposób bardziej zwięzły i przejrzysty. W tym artykule wyjaśniam, jak działa pandas.query() w języku Python oraz przedstawiam przykłady praktycznego zastosowania tej funkcji.
Co to jest pandas.query()?
Metoda query() w Pandas jest alternatywą dla tradycyjnych sposobów filtrowania danych. Pozwala na użycie wyrażeń w formie zapytań przypominających składnię SQL, co czyni kod bardziej czytelnym i skraca jego długość.
Składnia funkcji query()
Podstawowa składnia tej funkcji wygląda następująco:
DataFrame.query(expr, inplace=False, engine='numexpr', parser='pandas')
Gdzie:
expr– warunek filtrowania zapisany jako string (ciąg znaków)inplace– jeśli ustawione naTrue, modyfikuje oryginalnyDataFrameengine– domyślnie używa'numexpr'do optymalizacji zapytańparser– opcjonalny parser zapytań (najczęściej pozostawiamy domyślną wartość)
Przykłady zastosowania query()
Filtrowanie danych na podstawie jednej kolumny
Rozważmy prostą tabelę z danymi o produktach:
import pandas as pd
# Tworzymy DataFrame
df = pd.DataFrame({
'Produkt': ['Jabłko', 'Banan', 'Pomarańcza', 'Winogrona'],
'Cena': [3, 4, 5, 10],
'Dostępność': [True, False, True, True]
})
# Filtrowanie produktów tańszych niż 5 zł
tanie_produkty = df.query("Cena < 5")
Po wykonaniu tego kodu otrzymamy tabelę:
| Produkt | Cena | Dostępność |
|---|---|---|
| Jabłko | 3 | True |
| Banan | 4 | False |
Filtrowanie z wykorzystaniem operatora logicznego
Możemy filtrować dane według kilku warunków jednocześnie:
dostepne_tanie_produkty = df.query("Cena < 5 and Dostępność == True")
To zapytanie zwróci produkty, które są tańsze niż 5 zł i jednocześnie dostępne.
Filtrowanie z użyciem zmiennych
Jeśli chcemy użyć zmiennych w zapytaniu, możemy zastosować symbol @:
max_cena = 4
df.query("Cena <= @max_cena")
Dzięki temu możemy łatwo tworzyć dynamiczne zapytania.
Zalety stosowania query()
Oto kilka powodów, dla których warto korzystać z tej metody:
- Czytelność – zapytania są bardziej zwięzłe w porównaniu do standardowych metod filtrowania.
- Wydajność – dla dużych zbiorów danych może być szybsze niż tradycyjne indeksowanie.
- Łatwość użycia zmiennych – wykorzystanie
@pozwala dynamicznie tworzyć zapytania.
Podsumowanie
Metoda pandas.query() w języku Python to doskonałe narzędzie do filtrowania danych w sposób przejrzysty i elegancki. Pozwala na pisanie krótszego i bardziej czytelnego kodu, szczególnie gdy mamy do czynienia z dużymi zbiorami danych. Dzięki wsparciu dla zmiennych i operatorów logicznych, jej stosowanie może znacznie ułatwić codzienną pracę z danymi w Pandas.
Inny ciekawy artykuł:
Jak działa pandas nlargest w języku Python? Przykład zastosowania
Opanuj analizę danych w Pythonie z moim kursem!
Opanujesz podstawy programowania w Pythonie, w tym typy danych, zmienne, listy, słowniki, funkcje oraz obsługę błędów. Nauczysz się korzystać z biblioteki pandas do zaawansowanej analizy danych i pracy z różnymi rodzajami danych. Zrozumiesz proces analizy, eksploracji (EDA) i wizualizacji. Tworzenie własnych funkcji przygotuje Cię do rozmów kwalifikacyjnych i rozwiązywania rzeczywistych problemów biznesowych.
Zostań analitykiem danych – dołącz do KajoDataSpace!
Najlepsza ścieżka do zawodu analityka danych. Dostęp do pełnych wersji kursów online z Excela, SQLa, PowerBI, Tableau i Pythona z certyfikatami!
🟨 Ekskluzywana ale pomagająca sobie społeczność.
🟩 Ponad 75 godzin materiałów video.
🟨 Spotkania LIVE co miesiąc.
🟩 Mój osobisty mentoring.

