Blair  - Soul Eater 1075. Project Employees I

• data analysis/PYTHON

1075. Project Employees I

oujin 2024. 2. 26. 19:54
728x90

 

테이블 생성 코드

data = [[1, 1], [1, 2], [1, 3], [2, 1], [2, 4]]
project = pd.DataFrame(data, columns=['project_id', 'employee_id']).astype({'project_id':'Int64', 'employee_id':'Int64'})
data = [[1, 'Khaled', 3], [2, 'Ali', 2], [3, 'John', 1], [4, 'Doe', 2]]
employee = pd.DataFrame(data, columns=['employee_id', 'name', 'experience_years']).astype({'employee_id':'Int64', 'name':'object', 'experience_years':'Int64'})

 

 

문제

 

 

해결 코드

import pandas as pd

def project_employees_i(project: pd.DataFrame, employee: pd.DataFrame) -> pd.DataFrame:
    merge_df = pd.merge(project,employee, how='left', on='employee_id')
    result_df = merge_df.groupby('project_id')['experience_years'].mean().round(2).rename('average_years').reset_index()
    return result_df

 

 

 

풀이

1. merge_df = pd.merge(project,employeehow='left'on='employee_id')

project 테이블과 employee 테이블을 left join 으로 employee_id 컬럼을 기준으로 합친다.

 

2. result_df = merge_df.groupby('project_id')['experience_years'].mean().round(2).rename('average_years').reset_index()

합친 테이블에서 project_id를 기준으로 그룹바이 한다.

project_id로 묶여진 merge_df 테이블에서 experience_years 컬럼의 평균 mean ()을 구하고 round(2)를 하고  rename("")을 하고 섞여져버린 인덱스를 리셋시키는 reset_index()를 하고

 

3. return result_df

리턴에다가 출력한다.

 

 

 

728x90

'• data analysis > PYTHON' 카테고리의 다른 글

1633. Percentage of Users Attended a Contest  (0) 2024.02.28
1667. Fix Names in a Table  (0) 2024.02.27
610. Triangle Judgement  (0) 2024.02.24
1068. Product Sales Analysis I  (0) 2024.02.22
[leetcode] 1148. Article Views I  (0) 2024.02.20