为了更好地解释问题,让我们假设我有一个有3个独特客户的商店,我的数据框包含我的客户的每一次购买,包括工作日、名称和支付价格。在
name price weekday
0 Paul 18.44 0
1 Micky 0.70 0
2 Sarah 0.59 0
3 Sarah 0.27 1
4 Paul 3.45 2
5 Sarah 14.03 2
6 Paul 17.21 3
7 Micky 5.35 3
8 Sarah 0.49 4
9 Micky 17.00 4
10 Paul 2.62 4
11 Micky 17.61 5
12 Micky 10.63 6
我想得到的信息是每一个独特的客户每个工作日的平均价格。在类似的情况下,我经常做的是用sum对多个列进行分组,然后取列子集的平均值。在
^{pr2}$当然,只有当我所有的客户每天至少有一次购买时,这才有效。 对于第一个groupby之后没有求和的唯一索引值之间的所有组合,有没有一种优雅的方法来获得零值?在
到目前为止,我的解决方案是要么重新索引我从分组列的唯一值创建的多索引,要么是unstack fillna堆栈的组合,但这两种解决方案都不能真正满足我的需要。在
感谢你的帮助!在
我认为您可以使用
pivot_table
一次完成所有步骤。我不确定您想要什么,但是来自pivot_table
的默认聚合是平均值。你可以把它改成“sum”。在然后取每列的平均值。在
^{pr2}$IIUC,让我们使用
unstack
和fillna
,然后stack
:输出:
^{pr2}$而且
输出:
相关问题 更多 >
编程相关推荐