Python

[pandas]. 사용자의 합계를 구해서 칼럼 추가하기 (feat. groupBy)

Acdong 2021. 10. 27. 16:53
728x90

예시 데이터

import pandas as pd

df = pd.DataFrame({"name" : ["Lucas " , "Declan ", "Declan " , "Lucas " , 'Elliot' , 'Owen','Oskar','Oskar'] ,
              "exercise_hour" : [1,2,1,3,4,1,1,2]} )


이름 별로 합산 운동시간을 옆에 표시하고자함.

exercise_sum = df.groupby(['name']).sum().sort_values('exercise_hour',ascending=False).reset_index()

GroupBy 를 통해서 같은 이름별 합산을 구함.

*reset_index()는 groupby를 하면 인덱스가 묶여서 풀어주기 위함.

 

이름과 시간을 Key , Value로 가진 dict 생성

exercise_sum_dict = dict()

for i in range(len(exercise_sum)):
    temp = exercise_sum.iloc[i]
    exercise_sum_dict[temp['name']] = temp['exercise_hour']
{'Elliot': 4, 'Lucas ': 4, 'Declan ': 3, 'Oskar': 3, 'Owen': 1}

이렇게 만들어진 dict를 새로운 칼럼에 적용함 map()함수 사용

df['exercise_sum'] = df['name'].map(exercise_sum_dict)

같은 방식으로 max , mean 도 가능합니다.

 

반응형