Przejdź do treści

Numpy. Funkcja np.nanmean(). Średni ROAS kampanii z brakującymi dniami w eksporcie.

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.