21
Июл
2021

Группировка по нескольким колонкам

Есть датасет df с колонками person, year, sum_of_purchase. В датасете может быть много строк, когда один 'person' в один 'year' тратил разные суммы.

Надо сделать:

  1. новую колонку df['mean_sum_of_purchases_this_year']
  2. в этой колонке должна быть средняя сумма всех покупок этого 'person' за тот год, который будет в той же строке.

Вот так нахожу среднюю сумму всех трат одного 'person' за все годы:

df["mean_sum_of_purchase_all_years"] = df.person.map(df.groupby("person").sum_of_purchase.mean()) 

Понимаю что это тема 'groupby multiple times', но что брать - 'map' или 'apply', и как применить.

Источник: https://ru.stackoverflow.com/questions/1307466/%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0-%D0%BF%D0%BE-%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%B8%D0%BC-%D0%BA%D0%BE%D0%BB%D0%BE%D0%BD%D0%BA%D0%B0%D0%BC

Тебе может это понравится...

Добавить комментарий