Python中如何将季度数据集分组聚合为年度汇总数据
解决方法
你需要先从原date列提取出年份信息,再做分组聚合,核心代码如下:
# 方法1:按空格分割提取年份,直接替换原date列 df['date'] = df['date'].str.split().str[-1] # 按id、type、处理后的年份date分组,对count求和,重置索引恢复列结构 result = df.groupby(['id', 'type', 'date'], as_index=False)['count'].sum()
如果你的date列后续可能出现格式变化,也可以用正则匹配四位数字提取年份,兼容性更强:
# 方法2:正则提取四位年份 df['date'] = df['date'].str.extract(r'(\d{4})') result = df.groupby(['id', 'type', 'date'], as_index=False)['count'].sum()
说明
- 你之前的代码没有生效是因为分组直接用了带季度的原始
date值,同一年不同季度会被识别为不同分组,自然得不到按年聚合的结果 - 代码里加
as_index=False是为了避免分组键被转为索引,输出结果的列结构和你预期的样例完全一致
内容的提问来源于stack exchange,提问作者Lynn
相关产品推荐
相关产品推荐

