在合并上应用功能
Posted
技术标签:
【中文标题】在合并上应用功能【英文标题】:Applying function on merge 【发布时间】:2018-04-11 20:27:39 【问题描述】:我有两个数据框。片段粘贴在下面
员工
项目
两个数据框都有共同的列“级别”和“技能”,我需要将员工数据框的“员工ID”列合并到项目数据框。但问题是我需要将那些 EmployeeID 添加到 CostToCompany 最低的项目中。我该怎么做?
【问题讨论】:
【参考方案1】:您可以,drop_duplicates
选择最低成本的一项
Employee=Employee.sort_values(['Level','skill','CostToCompany']).drop_duplicates(['Level','skill','Rating'],keep='first')
那么,
Project1=pd.merge(Project,Employee['Level','skill','Employee ID'].on='cols')
或者你可以使用你的结果做:
Project1.sort_values(['Level','skill','CostToCompany']).drop_duplicates(['Level','skill','Rating'],keep='first')
【讨论】:
我的项目数据框有 10 行。所以最终在合并时我应该有 10 行,但我得到了 20 行。同样的技能和级别集也重复使用不同的 EmployeeIDProject1=pd.merge(Project,Employee['Level','skill','Rating'].on='cols',how='left')
,请确保您删除重复的内容,就像我在第一行所做的那样
我认为我不应该在 drop_duplicates 上使用“评级”。然后它给了我 10 行
@Biswa 是的,你是对的,没有数据很难写代码,所以下次请不要显示图片~:-)
谢谢老兄。会注意到这一点。您的代码有效以上是关于在合并上应用功能的主要内容,如果未能解决你的问题,请参考以下文章