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

Python实现数据集中时薪周薪月薪统一换算为年薪的方法

薪资单位统一换算为年度薪资的Pandas实现

需求说明

  • 目标:将数据集中按时薪、周薪、月薪、年薪四种单位统计的薪资,统一换算为年度薪资

原代码问题提示

你提供的原始代码存在逻辑错误:annual_rate 函数内部错误调用了全局的 df["prevailing_wage"] 而非传入的单行数据 x["prevailing_wage"],执行时会返回全列数据而非对应行的计算结果,无法得到正确的换算值。

修正后的可运行代码

def annual_rate(x):
    if x["unit_of_wage"] == "Hour":
        # 时薪转年薪:默认每周工作40小时,全年52周
        return x["prevailing_wage"] * 40 * 52
    elif x["unit_of_wage"] == "Week":
        # 周薪转年薪:全年52周
        return x["prevailing_wage"] * 52
    elif x["unit_of_wage"] == "Month":
        # 月薪转年薪:全年12个月
        return x["prevailing_wage"] * 12
    else:
        # 年薪直接返回原值
        return x["prevailing_wage"]

df = df.assign(annual_salary_calc=df.apply(annual_rate, axis=1))

高性能优化写法(可选)

如果数据集规模较大,用向量化运算替代行遍历apply可以大幅提升运行效率:

import numpy as np

conditions = [
    df["unit_of_wage"] == "Hour",
    df["unit_of_wage"] == "Week",
    df["unit_of_wage"] == "Month"
]
# 对应单位的薪资换算乘数
multipliers = [40*52, 52, 12]
df["annual_salary_calc"] = df["prevailing_wage"] * np.select(conditions, multipliers, default=1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 08:48:01