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

如何在Pandas的groupby中过滤?求各性别移动端用户数统计方法

解决方案

你可以通过两种简洁且正确的方式实现需求:

方法1:先筛选再分组统计

先过滤出所有移动端用户,再按性别分组统计customer的数量:

df[df['mobile']].groupby('gender')['customer'].count()

因为mobile是布尔类型列,直接用df[df['mobile']]就能筛选出所有移动端用户,无需额外写== True。

方法2:分组后聚合统计布尔值

利用布尔值在Pandas中True=1、False=0的特性,直接对mobile列求和,得到每个性别的移动端用户总数:

df.groupby('gender')['mobile'].sum()

这种方式无需提前过滤,一步完成分组和统计,结果和方法1完全一致。

原代码无法运行的原因

你写的df.groupby('gender')[df['mobile'] == True]['customer'].count()存在逻辑问题:分组后直接使用原DataFrame的布尔索引df['mobile'] == True,会导致索引不匹配(分组后的子DataFrame索引和原DataFrame不一致),因此无法正确筛选分组内的移动端用户。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 19:07:00