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

在pandas中如何按日期对符合自定义年龄组条件的列值分组求和

解决方法

你需要先定义自定义年龄组的映射规则,再按「日期+新年龄组」维度聚合求和即可。由于你需要的3个年龄组存在包含关系(75+属于60+的子集),可以通过分别计算每个大分组再合并的方式实现,逻辑清晰不易出错:

import pandas as pd

# 自定义年龄组映射规则:key为新分组名,value为对应的原始细分年龄组
group_map = {
    "18 - 59": ["18 - 29", "30 - 49", "50 - 54", "55 - 59"],
    "60+": ["60 - 64", "65 - 69", "70 - 74", "75 - 79", "80+"],
    "75+": ["75 - 79", "80+"]
}

res = []
for new_age, origin_ages in group_map.items():
    # 筛选对应原始年龄段,按日期求和后补充新分组字段
    tmp = df[df["AgeGroup"].isin(origin_ages)].groupby("Date", as_index=False)["Quantity"].sum()
    tmp["AgeGroup"] = new_age
    res.append(tmp)

# 合并所有结果后按日期排序,得到最终输出
final_df = pd.concat(res, ignore_index=True).sort_values(by=["Date", "AgeGroup"]).reset_index(drop=True)

逻辑说明

  1. 先把每个自定义大分组对应的原始细分年龄组提前定义好,后续修改规则不需要调整核心逻辑
  2. 逐个筛选每个大分组对应的原始数据,按日期分组求和,同时给结果加上当前大分组的标签
  3. 把三个分组的计算结果合并后排序,就得到了你需要的按日期拆分、自定义分组求和的结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 08:06:03