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

如何通过自定义函数为Pandas DataFrame新增平均技能水平列

使用自定义函数计算并添加平均技能水平列

需求说明

现有包含6个个人信息列和4个10分制技能列的Pandas DataFrame,需完成:

  • 基于4个技能列的值,计算每行的平均技能水平
  • 将计算结果添加为新列Average Skill Level

实现方法

通过自定义函数+apply方法即可实现,步骤如下:

  1. 编写自定义函数,接收单行数据,提取技能列并计算平均值
  2. 用df.apply()将函数作用到DataFrame的每一行,将结果赋值给新列

完整代码示例

import pandas as pd

data = {
    'Age': [30, 25, 35],
    'Gender': ['Male', 'Female', 'Male'],
    'Education Level': ['Bachelor', 'Master', 'Ph.D.'],
    'Job Title': ['Engineer', 'Manager', 'Analyst'],
    'Years of Experience': [5, 8, 3],
    'Salary': [60000, 80000again扩展还是_reader implementing Compute Demonstr栓在职娃雅要求目支付Convert!不对,直接放代码:
    'Salary': [60000, 80000, 55000],
    'Programming skills': [8, 7, 6],
    'Microsoft Office': [9, 8, 7],
    'Web development': [6, 5, 7],
    'Sales management': [7, 8, 6]
}

df = pd.DataFrame(data)

# 定义自定义函数:计算单行的平均技能水平
def calculate_avg_skills(row):
    # 提取4个技能列的值
    skill_values = [
        row['Programming skills'],
        row['Microsoft Office'],
        row['Web development'],
        row['Sales management']
    ]
    # 计算平均值并返回
    return sum(skill_values) / len(skill_values)

# 应用函数生成新列
df['Average Skill Level'] = df.apply(calculate_avg_skills, axis=1)

# 查看结果
print(df)

代码说明

  • calculate_avg_skills函数接收单行数据,手动提取指定技能列的值,计算算术平均值后返回
  • df.apply(..., axis=1)指定按行应用函数,每行数据会作为参数传入自定义函数
  • 计算结果会直接作为新列Average Skill Level添加到原DataFrame中

如果技能列数量较多,可优化函数通过列名筛选批量处理:

def calculate_avg_skills(row):
    # 批量筛选技能列(可根据实际列名调整筛选规则)
    skill_columns = ['Programming skills', 'Microsoft Office', 'Web development', 'Sales management']
    return row[skill_columns].mean()

这种方式无需逐个列名取值,后续技能列变动时只需修改筛选列表即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 10:15:04