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

如何在DataFrame中按州分组统计各年份数据计数?

按州、年份维度分组统计计数的实现方案

假设你是用Python pandas处理这份数据集,在已经正确生成Year列的前提下,直接用分组聚合逻辑就能实现需求,不需要写复杂循环。

核心实现代码

import pandas as pd

# df 是你已经处理好Year列的原始数据集变量
# 按州(Location)、年份(Year)双维度分组,统计每组的记录条数
stat_result = df.groupby(
    by=["Location", "Year"],  # 指定分组的两个维度
    as_index=False  # 分组字段不设为索引,保留普通列格式
).size().rename(columns={"size": "Record_Count"}) # 将统计得到的计数列重命名

效果说明

  • 运行后得到的结果里,Location列会自动按「州+年份」的唯一组合生成记录:比如亚拉巴马州(Alabama)存在2019、2020、2021三年的相关数据,结果中就会对应生成3条Alabama的行,分别匹配各年份的统计计数。
  • 最终输出的列顺序为Location、Year、Record_Count,直接匹配你要的输出结构。

常见问题排查

  • 如果分组后发现缺失某州对应年份的统计行,先检查Year列格式是否统一:数字格式的年份和字符串格式的同一年份会被判定为不同分组值,可先执行格式统一代码再分组:
    # 将Year列统一转换为整数型年份
    df["Year"] = df["Year"].astype(int)
    
  • 如果需要统计的不是总记录数,而是某一特定字段的非空值数量,可以把.size()替换为对应字段的count统计,例如统计每年每州的案件数:
    stat_result = df.groupby(
        by=["Location", "Year"],
        as_index=False
    )["Case_ID"].count().rename(columns={"Case_ID": "Case_Count"})
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 22:15:36