问题正在寻找该用户在购买之前的平均购买价格。找到倒数第二次购买用户的最佳方法是什么?
我想做到没有循环。建议我可以通过合并和过滤器解决此问题。我不太确定从哪里开始。
数据:
userid date price
001 01-01-19 20
001 01-03-19 40
001 01-05-19 50
002 01-05-19 30
002 01-07-19 20
003 01-09-19 20
003 01-01-19 80
003 01-02-19 70
003 01-03-19 20
答案 0 :(得分:0)
我认为您可能需要expanding.mean
df.groupby('userid').price.expanding().mean()
Out[447]:
userid
1 0 20.000000
1 30.000000
2 36.666667
2 3 30.000000
4 25.000000
3 5 20.000000
6 50.000000
7 56.666667
8 47.500000
Name: price, dtype: float64