
W pracy z danymi w języku Python biblioteka pandas jest jednym z najczęściej używanych narzędzi. Jedną z jej mniej znanych, ale bardzo użytecznych funkcji, jest pandas.DataFrame.filter()
, która pozwala na wygodne filtrowanie kolumn i wierszy w ramach dataframe’a. W tym artykule omówię szczegółowo, jak działa pandas filter oraz przedstawię przykłady jego zastosowania.
Co to jest pandas filter?
Funkcja filter()
w pandas służy do wybierania podzbiorów kolumn lub wierszy na podstawie ich nazw. Jest ona szczególnie przydatna, gdy chcemy pracować tylko z wybranymi kolumnami bez konieczności jawnego podawania ich wszystkich nazw w kodzie.
Składnia pandas filter
Podstawowa składnia funkcji filter()
wygląda następująco:
DataFrame.filter(items=None, like=None, regex=None, axis=None)
Gdzie:
- items – lista dokładnych nazw kolumn lub indeksów, które chcemy wybrać.
- like – wybiera kolumny lub indeksy, które zawierają określony ciąg znaków.
- regex – wybiera kolumny lub indeksy pasujące do wyrażenia regularnego.
- axis – określa, czy filtrowanie dotyczy kolumn (
axis=1
), czy indeksów wierszy (axis=0
).
Przykłady zastosowania pandas filter
Filtrowanie kolumn według dokładnej nazwy
Jeśli mamy dataframe z wieloma kolumnami, możemy wybrać tylko te, które nas interesują.
import pandas as pd
# Tworzymy dataframe
df = pd.DataFrame({
'Imię': ['Ala', 'Bartek', 'Celina'],
'Wiek': [25, 30, 22],
'Miasto': ['Warszawa', 'Kraków', 'Gdańsk']
})
# Wybieramy konkretne kolumny
df_filtered = df.filter(items=['Imię', 'Miasto'])
print(df_filtered)
Filtrowanie kolumn zawierających określony ciąg znaków
Jeśli wiemy, że kolumny o interesujących nas danych mają podobne nazwy, możemy użyć opcji like
.
df_filtered = df.filter(like='Miasto', axis=1)
print(df_filtered)
Filtrowanie kolumn na podstawie wyrażenia regularnego
Jeżeli nazwy kolumn mają określoną strukturę, możemy zastosować wyrażenia regularne.
df_filtered = df.filter(regex='^I', axis=1)
print(df_filtered)
Powyższy kod wybierze wszystkie kolumny, których nazwa zaczyna się od litery I
.
Filtrowanie wierszy według indeksów
Funkcja filter()
pozwala również na filtrowanie wierszy na podstawie indeksów. W tym celu ustawiamy axis=0
.
df.set_index('Imię', inplace=True)
# Wybieramy konkretne wiersze na podstawie indeksów
df_filtered = df.filter(items=['Ala', 'Celina'], axis=0)
print(df_filtered)
Kiedy używać pandas filter?
Funkcja filter()
jest szczególnie przydatna w następujących przypadkach:
- Gdy mamy duży dataset i chcemy szybko wybrać tylko interesujące nas kolumny.
- Gdy nazwy kolumn są standardowe i możemy je filtrować za pomocą wzorców (np. prefiksów lub sufiksów).
- Gdy chcemy pracować z wierszami o określonych indeksach.
Zalety pandas filter
Główne zalety pandas filter()
to:
Cecha | Opis |
---|---|
Intuicyjność | Łatwa składnia pozwala na szybkie filtrowanie danych. |
Elastyczność | Obsługuje kilka metod wyszukiwania: dokładne nazwy, częściowe dopasowania i wyrażenia regularne. |
Wydajność | Pozwala wybrać tylko potrzebne kolumny bez konieczności kopiowania całego dataframe’a. |
Podsumowanie
Funkcja pandas.DataFrame.filter()
to świetne narzędzie do filtrowania kolumn i wierszy w dataframe’ach w Pythonie. Dzięki różnym metodom selekcji – od podawania konkretnych nazw, przez dopasowywanie częściowe, aż po wyrażenia regularne – możemy w łatwy sposób manipulować danymi i wybierać te interesujące nas elementy. Jeśli pracujesz z dużymi zbiorami danych, zdecydowanie warto mieć tę funkcję w swoim arsenale!
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, Tableau i Pythona z certyfikatami + specjalistycznych webinarów z PowerBI.
Ekskluzywana ale pomagająca sobie społeczność.
Ponad 61 godzin materiałów video.
Spotkania LIVE co miesiąc.
Mój osobisty mentoring.