如何对Pandas DataFrame的finished列分组统计数量?
问题分析
你写的代码df = df.groupby('finished'.sum())存在语法错误:'finished'是字符串,直接调用.sum()完全不符合Pandas的分组逻辑,这才导致结果为空。要按finished列分组统计行数,有两种简单可靠的实现方式:
方法一:使用groupby + size()
size()会直接统计每组的行数,是最贴合需求的方法:
# 分组统计行数并转换为标准DataFrame result_df = df.groupby('finished').size().reset_index(name='count')
执行后会得到如下结果:
| finished | count |
|---|---|
| false | 4 |
| true | 4 |
方法二:使用value_counts()
直接对finished列调用value_counts(),可以更简洁地得到分组统计结果,再用reset_index()转换为DataFrame格式:
result_df = df['finished'].value_counts().reset_index(name='count')
该方法的输出与方法一完全一致,代码更简洁。
注:如果你的finished列存储的是字符串'true'/'false'而非布尔值,上述代码依然有效,无需额外类型转换。
内容的提问来源于stack exchange,提问作者JukeboxHero
相关产品推荐
相关产品推荐

