Przejdź do treści

Python. Funkcja functools.reduce(). Sumowanie przychodu z wielu źródeł kampanii.

Na czym to polega w sklepie

Funkcja reduce() z modułu functools składa sekwencję w jedną wartość przez wielokrotne wywołanie funkcji dwuargumentowej. W analityce marketingowej zastępuje ręczne akumulowanie w pętli.

Przykład ze sklepu internetowego

Masz listę dziennych przychodów z różnych kanałów i chcesz policzyć łączny wynik kampanii Q2:

from functools import reduce

daily_revenue = [1240.50, 980.00, 1560.75, 2100.30, 890.15]
total_q2 = reduce(lambda acc, day: acc + day, daily_revenue, 0)
# 6771.7

Wynik: trzeci argument 0 to wartość startowa - bez niej przy pustej liście dostaniesz błąd.

Co zrobić po stronie biznesu

  • Łączenie wielu słowników metryk z eksportów GA4 w jeden raport.
  • Agregacja kosztów reklam z wielu kont Google Ads w jednej operacji.
  • Budowa łańcucha transformacji wartości transakcji (rabat → VAT → netto).

W skrócie

reduce() jest mniej czytelne niż sum() dla prostych sum, ale niezastąpione przy złożonych agregacjach w pipeline danych e-commerce.