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

使用Pandas筛选指定年份列并添加年份均值列的实现方法

Pandas实现列筛选与年度平均值计算

没问题,我来帮你搞定这个Pandas操作!咱们一步步来实现需求:

1. 先还原原始DataFrame

首先用代码把你给出的DataFrame构建出来:

import pandas as pd

data = {
    'variable': ['X', 'Y'],
    '2000-1': [4, 6],
    '2000-2': [5, 8],
    '2000-3': [6, 10],
    '2001-1': [7, 9],
    '2001-2': [8, 5]
}
df = pd.DataFrame(data)
print("原始DataFrame:")
print(df)

2. 筛选目标列并添加年度平均值

接下来我们筛选出包含"2000"和"2001"的列,同时新增列存储每行对应年度的平均值:

# 筛选列名包含"2000"的所有列
cols_2000 = df.columns[df.columns.str.contains('2000')]
# 筛选列名包含"2001"的所有列
cols_2001 = df.columns[df.columns.str.contains('2001')]

# 添加2000年度平均值列:按行计算对应列的均值
df['2000_avg'] = df[cols_2000].mean(axis=1)
# 添加2001年度平均值列:同理按行计算
df['2001_avg'] = df[cols_2001].mean(axis=1)

# 查看最终处理结果
print("\n处理后的DataFrame:")
print(df)

关键说明

  • str.contains()方法能灵活匹配列名中的指定字符串,哪怕后续年份列数量增加,这个逻辑依然通用
  • axis=1参数指定按行计算平均值,也就是每个变量(X、Y)各自的年度均值,而不是整列的全局均值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 13:47:44