
Funkcja apply() z biblioteki pandas to jedno z najważniejszych narzędzi, które pozwala na efektywne przetwarzanie danych w DataFrame i Series. Dzięki niej mogę zastosować dowolną funkcję do wierszy lub kolumn, co znacznie przyspiesza operacje na dużych zbiorach danych. W tym artykule wyjaśnię, jak działa apply(), pokażę jej praktyczne zastosowania i przedstawię przykłady kodu w Pythonie.
Jak działa pandas apply w języku Python?
Metoda apply() pozwala na wywołanie funkcji dla każdej wartości w kolumnie lub wierszu obiektu DataFrame lub Series. Jest to znacznie bardziej wydajne niż iterowanie po wierszach przy użyciu pętli for.
Podstawowa składnia wygląda tak:
DataFrame.apply(func, axis=0, raw=False, result_type=None, args=(), **kwds)
func– funkcja, którą chcę zastosować.axis=0– operacja wykonywana na kolumnach (domyślnie).axis=1– operacja wykonywana na wierszach.raw=False– gdy ustawione naTrue, przekazuje wartości NumPy zamiast pandas Series.result_type=None– typ zwracanego wyniku.args– dodatkowe argumenty przekazywane do funkcji.
Przykład zastosowania apply() w praktyce
Aby lepiej zrozumieć, jak działa pandas apply w języku Python, stworzę przykładowy DataFrame.
import pandas as pd
# Tworzenie przykładowych danych
data = {
'Imię': ['Anna', 'Piotr', 'Kasia', 'Tomek'],
'Wiek': [23, 35, 29, 41],
'Pensja': [4000, 5000, 4500, 5200]
}
df = pd.DataFrame(data)
print(df)
Wynik powyższego kodu:
| Imię | Wiek | Pensja |
|---|---|---|
| Anna | 23 | 4000 |
| Piotr | 35 | 5000 |
| Kasia | 29 | 4500 |
| Tomek | 41 | 5200 |
Zastosowanie funkcji do jednej kolumny
Teraz przy użyciu apply() sprawię, że kolumna „Wiek” zostanie przekształcona w kategorie młody/stary.
df['Kategoria_Wieku'] = df['Wiek'].apply(lambda x: 'Młody' if x < 30 else 'Stary')
print(df)
Rezultat:
| Imię | Wiek | Pensja | Kategoria_Wieku |
|---|---|---|---|
| Anna | 23 | 4000 | Młody |
| Piotr | 35 | 5000 | Stary |
| Kasia | 29 | 4500 | Młody |
| Tomek | 41 | 5200 | Stary |
Zastosowanie apply() do wielu kolumn
Można też wykorzystać apply(), aby zastosować funkcję do wielu kolumn jednocześnie. Na przykład obliczę nową kolumnę z podwyżką pensji o 10%.
def podwyzka(row):
return row['Pensja'] * 1.1
df['Pensja_z_podwyzka'] = df.apply(podwyzka, axis=1)
print(df)
Różnica między apply() a map()
Warto zwrócić uwagę na to, czym różni się apply() od map() i applymap():
apply()– stosowane do wierszy lub kolumn DataFrame.map()– działa tylko na Series.applymap()– działa na każdą komórkę w DataFrame.
Podsumowanie
Metoda apply() w Pandas to bardzo potężne narzędzie, które pozwala na operacje na danych w sposób wydajny i czytelny. Dzięki niej mogę manipulować kolumnami, wyliczać nowe wartości i optymalizować kod. Jeżeli pracuję z dużym zestawem danych, warto pamiętać, że zamiast pętli for lepiej wykorzystać apply().
Inny ciekawy artykuł:
Jak działa pandas agg 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.

