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

pandas如何计算排除指定单列后的DataFrame每行平均值

pandas按行计算平均值排除年份列的实现方案

你当前使用的代码存在两个问题:

  • df.mean(axis=0)的作用是按列计算平均值,要实现每行平均值的计算,需要将轴参数改为axis=1
  • 代码没有排除存储年份的未命名列,大数值的年份会拉偏统计结果

你使用的数据集结构如下:
数据集样例

可以选择以下任意一种方式实现需求:

方法1:自动过滤未命名的年份列

通过列名特征直接筛掉所有Unnamed开头的年份列,不需要手动确认列位置,适配列顺序变动的场景:

# 排除所有列名以'Unnamed'开头的列,再按行计算均值
row_avg = df.filter(regex='^(?!Unnamed)').mean(axis=1)
print(row_avg)

方法2:按列位置排除年份列

从你的数据集结构看,年份列是第一列,可以直接用位置索引切片跳过第一列计算,写法最简洁:

# 从第二列开始选取所有列,按行计算均值
row_avg = df.iloc[:, 1:].mean(axis=1)
print(row_avg)

方法3:将年份列设为索引(推荐后续需要按年份匹配结果时使用)

把年份列设置为DataFrame的行索引后,所有行维度的统计计算都会自动跳过索引列,不需要每次手动筛列:

# 将第一列的年份设置为行索引
df = df.set_index(df.columns[0])
# 直接计算行均值即可,不会纳入年份值
row_avg = df.mean(axis=1)
print(row_avg)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 20:48:15