如何用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
相关产品推荐
相关产品推荐

