如何使用Python的pandas按月份和类型聚合统计每类frame的数量
多层维度分组统计实现方案
直接给groupby传入所有需要分组的维度字段,配合size()即可实现多层级的数量统计,示例操作如下:
- 基础统计(输出长表格式结果)
groupby按顺序传入frame、类型字段、月份字段三个维度,统计每个分组的数量:
# 请将代码中的origin_type、month替换为你实际的类型列、月份列名 stat_res = df.groupby(['frame', 'origin_type', 'month']).size().reset_index(name='统计数量')
- 透视表格式(输出宽表更易读)
如果需要按月份横向展示统计值,可以将上述结果转换为透视表:
pivot_res = stat_res.pivot( index=['frame', 'origin_type'], columns='month', values='统计数量' ).fillna(0).astype(int)
注意事项
groupby支持传入任意数量的列名实现多维度分组,没有层数限制size()的统计逻辑和value_counts完全一致,统计每个分组的总行数- 如果你需要统计某列的非空值数量,可将
size()替换为count('指定列名') fillna(0)是将无统计值的月份数据补为0,不需要可以删除该方法
内容的提问来源于stack exchange,提问作者Mtrinidad
相关产品推荐
相关产品推荐

