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

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

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 na True, 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
KajoDataSpace