Przejdź do treści

Pandas. Funkcja pd.json_normalize(). Spłaszczanie zdarzeń GA4 z zagnieżdżonymi parametrami.

Na czym to polega w sklepie

Funkcja pd.json_normalize konwertuje zagnieżdżone struktury JSON na płaski DataFrame z kolumnami oddzielonymi kropką. Niezbędna przy eksporcie zdarzeń e-commerce z API, gdzie items i ecommerce siedzą głęboko w obiekcie.

Przykład ze sklepu internetowego

Masz listę surowych hitów purchase z backendu - każdy event ma zagnieżdżoną listę items z item_id i price:

import pandas as pd

raw_events = [
    {
        "event_name": "purchase",
        "user_pseudo_id": "u_991",
        "ecommerce": {"transaction_id": "ORD-42", "value": 349.90},
        "items": [
            {"item_id": "SKU-100", "quantity": 1, "price": 199.90},
            {"item_id": "SKU-204", "quantity": 2, "price": 75.00},
        ],
    }
]

items = pd.json_normalize(
    raw_events,
    record_path="items",
    meta=["event_name", "user_pseudo_id", ["ecommerce", "transaction_id"]],
)
# Jedna linia = jedna pozycja koszyka z kontekstem transakcji

Co zrobić po stronie biznesu

  • Spłaszczenie odpowiedzi API Shopify/WooCommerce przed analizą AOV.
  • Rozwinięcie parametrów customowych z eksportu BigQuery GA4.
  • Przygotowanie line-item revenue do join z katalogiem produktów.

W skrócie

Zamiast pętli po JSON-ach użyj json_normalize z record_path i meta. To najszybsza droga od surowego eventu do tabeli analitycznej.