我想定义带有签名的自定义函数,其中包含数据帧的一列或几列。
我试图复制文章“如何将 Pandas 'apply' 函数用于多列?”中提到的解决方案,但我无法理解需要设置函数以接受来自其他列的数据作为输入的方式。
我的代码示例:
import pandas as pd
df=pd.DataFrame({'NAME':['A','B','C','D'],'HOURS':[38, 52, 1040, 28],'ROLE':['Manager','Expert','Expert','Expert']})
def apply_rate(col1='HOURS', col2='ROLE'):
if row[col2]=='Manager': return row[col1]*165
else: return row[col1]*135
df['TOTAL']=df.apply(lambda row: apply_rate(row['HOURS'],row['ROLE']),axis=1)
我收到一条消息“KeyError: ('Manager', 'occurred at index 0')”,但我卡在这个阶段,我不知道如何摆脱这个阻塞点。
隔江千里
相关分类