Przejdź do treści

Python. Funkcja itertools.groupby(). Grupowanie eventów GA4 po sesji.

Na czym to polega w sklepie

Funkcja groupby() z modułu itertools dzieli posortowaną sekwencję na grupy o tym samym kluczu. W analizie ścieżek e-commerce grupuje eventy jednej sesji lub zamówienia jednego klienta.

Przykład ze sklepu internetowego

Eventy GA4 posortowane po session_id - grupujesz ścieżkę każdej sesji:

from itertools import groupby
from operator import itemgetter

events = [
    {"session_id": "s1", "event": "page_view"},
    {"session_id": "s1", "event": "add_to_cart"},
    {"session_id": "s2", "event": "page_view"},
    {"session_id": "s2", "event": "purchase"},
]

for sid, group in groupby(events, key=itemgetter("session_id")):
    path = [e["event"] for e in group]
    # s1: ['page_view', 'add_to_cart']; s2: ['page_view', 'purchase']

Co zrobić po stronie biznesu

  • Analiza sekwencji eventów przed konwersją.
  • Grupowanie wierszy sprzedaży per dzień po sortowaniu.
  • Budowa raportu per kampania z posortowanego CSV.

W skrócie

groupby wymaga posortowanych danych - bez sortowania po kluczu grupy będą niepełne i wyniki błędne.