2017-10-30 1 views
2

두 개의 데이터 프레임이 있습니다. 조각은병합시 적용 기능

직원

enter image description here

프로젝트 아래에 붙여 넣은

enter image description here

모두 dataframes 내가 "직원 ID를 병합해야하는 일반적인 열"레벨 "과"기술 "가 Employee 데이터 프레임에서 Project 데이터 프레임으로 이동합니다. 하지만 문제는 그 EmployeeID를 CostToCompany가 가장 낮은 Project에 추가해야한다는 것입니다. 내가 어떻게 할 수 있니?

enter image description here

답변

2

당신은

Project1=pd.merge(Project,Employee['Level','skill','Employee ID'].on='cols') 

, 최소 한 다음

Employee=Employee.sort_values(['Level','skill','CostToCompany']).drop_duplicates(['Level','skill','Rating'],keep='first') 

비용을 선택 drop_duplicates 수 있습니다 또는 당신은 일을 당신의 결과를 사용 할 수 있습니다

Project1.sort_values(['Level','skill','CostToCompany']).drop_duplicates(['Level','skill','Rating'],keep='first') 
+1

내 Proje을 ct 데이터 프레임에는 10 개의 행이 있습니다. 그래서 결국 병합에 내가 10 행을해야하지만 20 행을 얻고있다. 또한 동일한 스킬과 레벨 세트가 다른 EmployeeID – Biswa

+0

'Project1 = pd.merge (Project, Employee ['Level ','스킬 ','등급 ']. on ='cols ', how ='left ')로 반복됩니다. ', 내가 첫 줄에서하고있는 것과 똑같이 중복되었는지 확인하십시오. – Wen

+1

나는 drop_duplicates에 '등급'을 사용하지 말아야한다고 생각합니다. 그럼 나에게 @Biswa 그래 당신이 바로, 그것은 데이터없이 코드를 작성하기위한 어렵다, 그래서 사진을 다음의 친구 ~ :-) – Biswa