为什么Python pandas的.agg()函数运行后返回True和False两类结果?
结果拆分的原因
你传入groupby()的参数datamart['RFM_Score'] == 9是布尔判断表达式,执行后会生成一个和数据表行数一致的布尔序列:
- 对应
RFM_Score值为9的行,序列值为True - 对应
RFM_Score值不为9的行,序列值为False
pandas的groupby会根据传入序列的唯一值做分组,所以会自动拆成True、False两组分别计算MonetaryValue的平均值,最终输出两类结果。
如果你只需要获取RFM_Score=9的用户平均消费额,可使用以下更直接的写法:
# 写法1:筛选后用agg计算 datamart[datamart['RFM_Score'] == 9]['MonetaryValue'].agg(np.mean) # 写法2:更简化的写法 datamart[datamart['RFM_Score'] == 9]['MonetaryValue'].mean()
内容的提问来源于stack exchange,提问作者veenus_almad
相关产品推荐
相关产品推荐

