【发布时间】:2018-12-29 00:11:11
【问题描述】:
我想定义带有包含一列或多列数据框的签名的自定义函数。
我尝试复制文章“如何将 Pandas '应用'函数应用于多个列?”中提到的解决方案,但我无法理解需要设置函数以接受来自其他列的数据作为输入的方式.
我的代码示例:
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')”,但我卡在这个阶段,我不知道如何摆脱这个阻塞点。
【问题讨论】:
标签: python python-3.x pandas dataframe apply