Jak działa pandas filter w języku Python? Przykład zastosowania

Jak działa pandas filter w języku Python? Przykład zastosowania
„`html

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!

„` Inny ciekawy artykuł: Jak działa pandas transform w języku Python? Przykład zastosowania
KajoDataSpace