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

如何在Pandas中高效计算多列均值并生成新列?

如何在Pandas中高效计算多列均值生成新列?

针对你这种有大量同前缀(salary_)列的场景,完全不用逐个指定列名,Pandas有非常高效的批量处理方法,下面给你两种实用方案:

方案1:用filter()快速匹配目标列

这是最简洁的写法,直接通过like参数筛选所有包含salary_的列,然后按行计算均值:

import pandas as pd

# 你的原始DataFrame
df = pd.DataFrame({ 
    'salary_1': [230, 345, 222], 
    'salary_2': [235, 375, 292], 
    'salary_3': [210, 385, 260] 
})

# 生成均值列
df['salary_mean'] = df.filter(like='salary_').mean(axis=1)
  • filter(like='salary_')会自动选中所有列名包含salary_的列,不管你后续新增多少个salary_4、salary_5都能自动覆盖;
  • axis=1表示按行计算均值,确保每一行的结果对应该行的薪资值的平均。

方案2:用列名的字符串方法精准筛选

如果你的列名是严格以salary_开头(不想匹配到比如extra_salary这类列),可以用str.startswith()来精准定位:

# 先获取所有以salary_开头的列名
salary_cols = df.columns[df.columns.str.startswith('salary_')]
# 计算均值并生成新列
df['salary_mean'] = df[salary_cols].mean(axis=1)

最终结果

执行完上述代码后,你的DataFrame会变成:

salary_1  salary_2  salary_3  salary_mean
0       230       235       210   225.000000
1       345       375       385   368.333333
2       222       292       260   258.000000

这两种方法都不需要手动枚举列名,处理大量同类型列时非常高效,完全满足你的需求。

内容的提问来源于stack exchange,提问作者Carmen Pérez Carrillo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:36:09