我已经在这段代码上工作了很长一段时间,但无法获得输出。我有两个 Dataframe ,如下所示:
df1 = pd.DataFrame([['A', 3,'Sales', 'N', 'Y', 'Y'],['B',5 ,'Sales', 'N', 'N', 'Y'],['C', 4,'FIN', 'Y', 'N', 'N'],['D', 2,'FIN', 'N', 'Y', 'Y']],
columns=['EMP_NAME', 'HOURS', 'DEPT', 'COM', 'OT', 'BIN'])
df2 = pd.DataFrame([['COM','SALES', 0.05, 5],['OT','SALES', 0.02, 2],['BIN','SALES', 0.02, 3],['COM','FIN', 0.06, 0], ['OT','FIN', 0.04, 6], ['BIN','FIN', 0.07, 8]],
columns=['CATEGORY','DEPT', 'RATE', 'EXTRA'])
任务是使用df2中的数据计算df1中“com”、“ot”、“bn”列中有“y”的所有员工的总金额。例如,对于员工a,加班费金额为3(小时)*0.04(费率)+2(额外)。也就是说,在df2中找到具有部门“sales”的类别“ot”的对应费率,并按照上面所示计算金额。最后,所有y必须用df1中各自的金额替换。我试着使用join和许多其他方法,但似乎都不管用。
1条答案
按热度按时间rbpvctlc1#
尝试:
印刷品: