data = [['john', 'A01', 1],['john', 'A01', 1],['john', 'A01', 1],['john', 'B01', 0],['john', 'C01', 0],['katty', 'A01', 0],['katty', 'B01', 0]]
df = pd.DataFrame(data, columns = ['name', 'orderID','buying_channel'])
purchase_channel = df.groupby('name').apply(lambda x: pd.Series({"buying_channel": sum((x.buying_channel)/(x.buying_channel.count()))}))
purchase_channel.head()
Я хочу вычислить человека, покупающего канал, «1» - это канал, «0» - это другой. (1 = онлайн, 0 = автономно)
Вместо вычисления в целом, что дает 0,6, я хочу рассчитать его на основе идентификатора заказа.
Ожидаемый результат:
data2 = [['john', 0.33], ['katty', 0]]
df2 = pd.DataFrame(data2, columns = ['name','buying_channel'])
df2
Потому что «Джон» покупает 3 раза, только один раз - онлайн, остальные - в автономном режиме. следовательно, как аггить на основе orderID?
Спасибо