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

如何使用Pandas按用户ID统计非空账号数量?

统计用户非空账号数量的正确实现方法

你的思路方向是对的,但原代码会生成多层列索引,不符合你想要的简洁输出格式。下面给你两种实用的正确实现方式:

方法一:直接分组统计并重命名列

这种方式最简洁,count()方法本身就会自动忽略NaN值:

result = data.groupby('UserID')['AccountNum'].count().reset_index(name='TotalAccNum')
  • 先通过groupby('UserID')['AccountNum']指定仅对AccountNum列按用户分组
  • count()统计每组的非空值数量
  • reset_index(name='TotalAccNum')将分组后的索引转为普通列,并把统计结果列重命名为你需要的TotalAccNum

方法二:使用agg函数指定列名(Python 3.6+)

如果你更倾向于用agg方法,可以通过键值对的方式直接定义输出列名和聚合逻辑,避免多层索引:

result = data.groupby('UserID').agg(TotalAccNum=('AccountNum', 'count')).reset_index()

测试验证

用你提供的测试数据:

UserID AccountNum
A001 12345
A001 NaN
A001 56789

运行上述任意一种方法后,都会得到你期望的输出:

UserID TotalAccNum
A001 2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 11:47:34