You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pandas groupby分组聚合时条件计数错误的正确实现方法是什么?

问题原因

你代码中的条件计数使用了count()方法,该方法会统计布尔序列里所有非空值的总个数,无论布尔值是True还是False都会被计入,最终得到的是分组内的总天数,和你的预期不符。

修正方案

把条件计数语句中的count()替换为sum()即可。布尔值在执行求和运算时,True会被识别为1、False会被识别为0,求和结果正好是满足条件的记录条数。

修正后完整代码

def f(x):
    d = {}
    d['Avg_Transactions'] = x['Transaction'].mean().round()
    d['Avg_Balance'] = x['Balance'].mean().round(2)
    d['Zero_Balance_days'] = (x['Balance'] < 0).sum() 
    d['Over_Credit_days'] = (x['Balance'] > x['Max Credit']).sum()
    return pd.Series(d, index=['Avg_Transactions', 'Avg_Balance', 'Zero_Balance_days', 'Over_Credit_days'])

month = df.groupby(['Account','Name', 'Month']).apply(f)
# 若需要把分组的多层索引转为普通列,可在后面加.reset_index()
# month = df.groupby(['Account','Name', 'Month']).apply(f).reset_index()

内容的提问来源于stack exchange,提问作者bran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 19:45:03