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

Pandas按年统计40岁以下事故伤残、死亡、轻伤数并合并表方法

你现有代码里统计轻伤的筛选条件有误,目前写的是判断Degree_injury == 'death',需要修正为Degree_injury == 'minor_injury',否则轻伤统计结果会和死亡人数一致。

方案1:直接合并你已生成的三个统计结果

你已经生成的num_disability、num_death、num_minor_injury都是以Year为索引的Series,用pd.concat即可直接合并:

import pandas as pd

# 按列合并三个Series,同时指定列名,缺失值填充为0后转成整数类型
summary_df = pd.concat(
    [num_disability, num_death, num_minor_injury],
    axis=1,
    keys=['伤残人数', '死亡人数', '轻伤人数']
).fillna(0).astype(int)

# 如果你需要把Year从索引转为普通列,再加一行代码即可
# summary_df = summary_df.reset_index()

方案2:更高效的一次性统计实现(推荐)

不需要拆分三次过滤分组,一次性过滤后直接统计,代码更简洁性能更好:

import pandas as pd

# 先过滤出年龄<40的记录
df_under40 = df[df['Age'] < 40]
# 按年份分组,统计三类伤情的数量
summary_df = df_under40.groupby('Year')['Degree_injury'].value_counts().unstack().fillna(0)[
    ['disability', 'death', 'minor_injury']
].rename(columns={
    'disability': '伤残人数',
    'death': '死亡人数',
    'minor_injury': '轻伤人数'
}).astype(int)

运行后得到的summary_df就是你需要的按年份汇总的统计表格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 21:54:01