我有一个如下的数据集,并试图根据某些条件更新员工以前和当前工资的加薪百分比,对于hike_percentage列,有些值没有正确更新,而是被指定为0。因此,下面的条件用于纠正hike_percentage列值
df
Employee Previous_ctc Current_ctc Hike_perecentage
1 5000 10000 100
2 15000 20000 0
3 16000 18000 0
4 20000 20000 0
条件:考虑到上升百分比==0行考虑到当前CTC不等于0考虑到当前CTC不匹配先前CTC最后执行计算,即(ctc-先前CTC)/先前CTC)*100 -以获得百分比增加。
我们看到,在上面的数据集中,对于employee 2,3,hike_percentage值是不正确的,因此通过使用上面的条件,我们只得到employee 2,3行,输出应该如下所示
Expected output:
Employee Previous_ctc Current_ctc Hike_perecentage
1 5000 10000 100
2 15000 20000 33.3
3 16000 18000 12.5
4 20000 20000 0
我已经尝试了多种方法建议,但其抛出错误。尝试下面的代码之一,并抛出错误,并没有更新预期的输出。
Code:
df['Appraisal Percent'] = df['Current_ctc'].apply(lambda x:round((x['Current_ctc']-
x['Previous_ctc'])/x['Previous_ctc'])*100,decimals=1 if x!=0 elif x['Final Fixed
Compensation']!=x['Previous_ctc'])
1条答案
按热度按时间pgvzfuti1#
使用
mask
:eval
可选:输出: