You need to enable JavaScript to run this app. 如何按区域、年龄组分组对CSV表前两列外各年份人口列求和
优惠活动
大模型
产品
解决方案
定价
更多

如何按区域、年龄组分组对CSV表前两列外各年份人口列求和

纽约市人口数据5岁年龄组汇总实现方案

方案1:Python Pandas实现(适合批量处理、数据量较大的场景)

提前安装pandas依赖:pip install pandas
完整实现代码:

import pandas as pd

# 读取原始CSV文件,替换为你本地的文件路径
df = pd.read_csv("nyc_population_raw.csv")

# 定义年龄分组转换逻辑
def age_to_group(age_val):
    # 处理85+特殊标识
    if str(age_val).strip() == "85+":
        return "85+"
    try:
        age_num = int(age_val)
    except:
        return "85+"
    if age_num >= 85:
        return "85+"
    # 按5岁间隔生成分组标签
    start = (age_num // 5) * 5
    return f"{start}-{start+4}"

# 生成年龄组列
df["age_group"] = df["Age"].apply(age_to_group)

# 自动识别所有2021-2034的年份列,无需手动枚举
year_columns = [col for col in df.columns if col.isdigit() and 2021 <= int(col) <= 2034]

# 按区域、年龄组分组求和
summary_df = df.groupby(["Area", "age_group"], as_index=False)[year_columns].sum()

# 重命名列匹配目标输出结构
summary_df = summary_df.rename(columns={"age_group": "Age"})

# 导出结果到新CSV,支持Excel直接打开
summary_df.to_csv("nyc_population_summary.csv", index=False, encoding="utf-8-sig")

方案2:Excel操作实现(适合小数据量、无代码基础的场景)

  • 新增「年龄组」辅助列,单元格公式示例(假设年龄列在B列,第一行数据在第2行):
    =IF(B2="85+","85+",IF(B2>=85,"85+",FLOOR(B2,5)&"-"&(FLOOR(B2,5)+4)))
  • 选中全表插入数据透视表,行区域依次添加「Area」、「年龄组」字段
  • 值区域添加2021-2034所有年份字段,值字段汇总方式选择「求和」
  • 调整透视表格式后直接导出即可得到目标汇总表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 02:15:07