Na czym to polega w sklepie
Funkcja np.nanmean oblicza średnią arytmetyczną, ignorując wartości NaN. Eksporty kampanii często mają puste komórki w weekendy lub dni bez spendu - np.mean zwróci NaN, np.nanmean policzy sensowny wynik.
Przykład ze sklepu internetowego
Dzienny ROAS kampanii spring_sale - trzy dni bez przychodu (brak konwersji) mają NaN zamiast 0:
import numpy as np
daily_roas = np.array([4.2, 3.8, np.nan, 5.1, np.nan, 4.0, 3.5])
campaign_avg = np.nanmean(daily_roas) # ~4.12, bez crashu
bad_avg = np.mean(daily_roas) # nan - cały wynik przepada
# ROAS z zerami (dzień bez spendu) to inna historia - tam mean, nie nanmean
Co zrobić po stronie biznesu
- Średnia cart_value per SKU gdy część dni ma zerową sprzedaż (wartość 0, nie NaN).
- Agregacja wielu kampanii w jednej tablicy 2D -
np.nanmean(axis=1). - Pułapka: jeśli NaN oznacza „brak danych”, a nie „zero”, nie zamieniaj NaN na 0 przed liczeniem - zafałszujesz KPI.
W skrócie
nanmean gdy luki to brak pomiaru. Gdy brak sprzedaży = 0 PLN, użyj zwykłego mean - to inna semantyka biznesowa.