Przejdź do treści

Pandas. Metoda df.transform(). Udział kampanii w przychodzie w obrębie kanału.

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.