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

如何对Pandas DataFrame中重复年份的统计列求均值合并?

解决方法

要合并重复年份的行并对统计列求均值,同时确保覆盖1970-2022所有年份,可按以下步骤操作:

1. 按年份分组计算均值

使用Pandas的groupby按year列分组,对所有统计列(stat1至statn)批量计算均值:

import pandas as pd

# 获取所有统计列(自动排除year列)
stat_columns = df.columns.drop('year')

# 分组求均值,重置索引让year回到列位置
grouped_df = df.groupby('year')[stat_columns].mean().reset_index()

2. 补全缺失年份

由于部分年份可能因数据缺失被删除,需要生成完整的年份序列,通过左连接确保每个年份都存在一行:

# 生成1970到2022的完整年份列表
full_year_range = pd.DataFrame({'year': range(1970, 2023)})

# 左连接补全年份,缺失年份的统计值会显示为NaN
final_df = full_year_range.merge(grouped_df, on='year', how='left')

补充说明

  • groupby('year').mean()会自动忽略每组内的NaN值,仅对有效数值计算均值,适合处理缺失数据场景。
  • 用df.columns.drop('year')批量获取统计列,无需手动罗列大量列名,适配大型DataFrame操作。
  • 1970到2022总计53个年份,最终final_df会有53行;若你需要52行,请检查年份范围是否应为1971-2022。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 19:43:30