Na czym to polega w sklepie
Metoda df.transform stosuje funkcję grupującą i zwraca Series o długości oryginalnego DataFrame - w przeciwieństwie do agg, które redukuje wiersze. Idealna do kolumn pochodnych: udział procentowy, odchylenie od średniej w grupie.
Przykład ze sklepu internetowego
Chcesz kolumnę revenue_share - jaki procent przychodu kanału przypada na daną kampanię:
import pandas as pd
campaigns = pd.read_csv("campaign_revenue.csv")
campaigns["channel_total"] = campaigns.groupby("channel")["revenue"].transform("sum")
campaigns["revenue_share_pct"] = (
campaigns["revenue"] / campaigns["channel_total"] * 100
).round(2)
# Każdy wiersz ma udział swojej kampanii w sumie kanału
Co zrobić po stronie biznesu
- Z-score spend per kanał do wykrywania anomalii wydatków.
- Normalizacja CTR względem średniej kampanii w ad secie.
- Kolumna rank w grupie przez
transform("rank")dla top SKU per kategoria.
W skrócie
transform gdy potrzebujesz kolumny obok oryginału, agg gdy chcesz tabelę podsumowania. Udział % w grupie to najczęstszy use case w marketingu.