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

如何按年周性别维度汇总英国分地区指标并保留其余国家数据

解决方案

用Python的pandas库处理即可,核心逻辑是拆分英国子区域数据聚合后,和其余原数据拼接,不会改动非英国区域的任何原有记录:

  • 先把数据拆为两部分:英国三个下属统计单元(苏格兰GBR_SCO、英格兰威尔士GBR_WAL、北爱尔兰GBR_NIR)的数据,以及其余所有国家/地区的原数据(后者完全保留不做修改)
  • 对英国三个子单元的数据,按需要对齐的维度(年份、周、性别、年龄组等所有分类维度)分组,对死亡数、死亡率等所有数值字段求和,统一将国家代码赋值为GBR
  • 将聚合后的英国合计数据,和之前保留的非英国原数据纵向拼接,得到最终结果

可直接运行的代码

假设你已经把HMD导出的原始数据读入pandas DataFrame,变量名为df:

import pandas as pd

# 英国下属三个独立统计单元的代码
gbr_sub_codes = ["GBR_SCO", "GBR_WAL", "GBR_NIR"]

# 提取所有非英国子单元的原数据,不做任何修改
df_non_gbr = df[~df["Country"].isin(gbr_sub_codes)].copy()

# 聚合英国三个子单元的数据
df_gbr_raw = df[df["Country"].isin(gbr_sub_codes)].copy()
# 分组维度:把所有不需要求和的分类列都放这里,根据实际数据调整即可,比如有年龄组就加"Age"
group_dimensions = ["Year", "Week", "Sex"]
# 自动对所有数值列(死亡人口、死亡率等)按分组维度求和
df_gbr_agg = df_gbr_raw.groupby(group_dimensions, as_index=False).sum(numeric_only=True)
# 赋值统一国家代码
df_gbr_agg["Country"] = "GBR"

# 拼接得到最终结果
df_final = pd.concat([df_non_gbr, df_gbr_agg], ignore_index=True)

注意事项

  • 如果数据里还有其他分类维度(比如分年龄组、死亡原因等),直接把对应列名加到group_dimensions列表里即可,不需要修改聚合逻辑,会自动按维度匹配后计算合计值
  • 用给出的样例数据验证:2000年第1周苏格兰率为0.01、英格兰威尔士为0.19,聚合后正好为0.20,和预期结果完全匹配
  • 该逻辑会完整保留所有原有国家、年份、周度的记录,不会出现数据丢失

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 14:09:18