
Pracując z biblioteką pandas w Pythonie, często spotykam się z sytuacją, w której muszę przekształcić dane w ramach konkretnej grupy lub kolumny. Jednym z narzędzi, które mi to umożliwia, jest metoda transform(). W tym artykule omówię, jak działa pandas.transform(), do czego się przydaje oraz pokażę przykłady zastosowania.
Co to jest pandas.transform()?
Metoda transform() pozwala stosować funkcje transformacyjne do każdej grupy lub kolumny w DataFrame lub Series. W przeciwieństwie do apply(), która może zwracać obiekty o różnych kształtach, transform() zawsze zwraca obiekt o tej samej liczbie elementów co oryginał. To kluczowa cecha, ponieważ umożliwia łatwe zachowanie struktury zbioru danych.
Podstawowa składnia
DataFrame.transform(func, axis=0, *args, **kwargs)
func– funkcja lub lista funkcji do zastosowania.axis– określa, czy operacja ma dotyczyć wierszy (0) czy kolumn (1).*args– dodatkowe argumenty przekazywane do funkcji.**kwargs– dodatkowe argumenty nazwane.
Przykład zastosowania: normalizacja wartości w grupach
Załóżmy, że mamy zbiór danych przedstawiający sprzedaż w różnych regionach. Chcemy przekształcić kolumnę Sprzedaż, normalizując wartości wewnątrz każdej grupy.
import pandas as pd
# Tworzymy przykładowy DataFrame
df = pd.DataFrame({
'Region': ['A', 'A', 'A', 'B', 'B', 'B'],
'Sprzedaż': [100, 200, 150, 300, 250, 400]
})
# Normalizujemy sprzedaż w każdym regionie
df['Sprzedaż_Znormalizowana'] = df.groupby('Region')['Sprzedaż'].transform(lambda x: (x - x.mean()) / x.std())
print(df)
Otrzymamy wynik podobny do:
| Region | Sprzedaż | Sprzedaż_Znormalizowana |
|---|---|---|
| A | 100 | -1.224745 |
| A | 200 | 1.224745 |
| A | 150 | 0.000000 |
| B | 300 | 0.000000 |
| B | 250 | -1.000000 |
| B | 400 | 1.000000 |
Różnica między transform() a apply()
Metoda apply() pozwala na stosowanie przekształceń do grup danych, ale w przeciwieństwie do transform(), wynik może mieć inną liczbę elementów niż oryginalny zbiór danych. Zobaczmy prosty przykład:
df.groupby('Region')['Sprzedaż'].apply(lambda x: x.mean())
Wynikiem będzie seria z wartością średniej dla każdego regionu. Z kolei transform() zwraca obiekt o tej samej liczbie elementów co wejściowy DataFrame, co ułatwia integrację tych wartości do oryginalnych danych.
Przydatne zastosowania transform()
Metoda transform() sprawdza się w wielu scenariuszach, takich jak:
- Normalizacja i standaryzacja wartości w grupach.
- Obliczanie średnich czy median w obrębie grup i przypisywanie ich do oryginalnych danych.
- Tworzenie nowych cech (feature engineering) w uczeniu maszynowym.
Podsumowanie
Metoda pandas.transform() to świetne narzędzie do przekształcania danych bez zmiany ich struktury. Jest niezwykle przydatna w analizie danych i uczeniu maszynowym, zwłaszcza kiedy chcemy stosować operacje na grupach, ale jednocześnie zachować pierwotny kształt zbioru. Mam nadzieję, że ten artykuł pomógł Ci lepiej zrozumieć, jak działa transform() w języku Python oraz w jakich sytuacjach warto go używać.
Inny ciekawy artykuł:
Jak działa pandas map 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.

