Zastosowanie niestandardowych funkcji z lambdą rozszerza możliwości agregacji
pozwala na wykonanie dowolnego obliczenia na pogrupowanych danych
bardzo elastyczne, ale może wpływać na wydajność przy dużych zbiorach danych
szczególnie przydatne przy niestandardowych miarach statystycznych
df.groupby('Region').agg({ 'Discount': lambda x: np.where(x<.1, 1, 0).mean(), # procent ofert w regionie z niską zniżką 'Sales': lambda x: x.sum() / x.count() # Średnia}).round(1)# TBH wygląda to strasznie, ale w rzeczywistości to zwykły słownik z funkcjami lambda# także, upraczając, tworzymy słownik eval:eval = { 'Discount': lambda x: np.where(x<.1, 1, 0).mean(), # procent ofert w regionie z niską zniżką 'Sales': lambda x: x.sum() / x.count() # Średnia}# I stosujemy go w agg() i gitesdf.groupby('Region').agg(eval).round(1)