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

如何用Python按年份分组求Extent列均值并生成新DataFrame?

解决方案

你可以通过Pandas的groupby方法快速实现按年份分组计算均值的需求,具体步骤如下:

1. 基础实现代码

假设你已经将数据读取到DataFrame df 中:

import pandas as pd

# 读取数据(替换为你的数据路径)
df = pd.read_csv("data.csv")

# 按年份分组计算extent列的平均值,转换为DataFrame并重命名列
yearly_avg_extent = df.groupby('year')['extent'].mean().reset_index()
yearly_avg_extent = yearly_avg_extent.rename(columns={
    'year': 'Year',
    'extent': 'Average Extent'
})

2. 格式优化(可选)

如果需要和示例一样保留三位小数,可以添加以下代码:

yearly_avg_extent['Average Extent'] = yearly_avg_extent['Average Extent'].round(3)

3. 关键步骤说明

  • groupby('year')['extent'].mean():按year列分组,对每组的extent列计算算术平均值,返回以年份为索引的Series。
  • reset_index():将年份索引转换为普通列,得到包含两列的标准DataFrame。
  • rename(columns=...):将列名修改为你需要的Year和Average Extent。

4. 数据类型校验(避免报错)

如果extent列不是数值类型,会导致均值计算失败,可以先转换类型:

df['extent'] = pd.to_numeric(df['extent'], errors='coerce')

运行后yearly_avg_extent就是你需要的结果,包含1978到2022年的年份对应平均extent值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 04:15:28