inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[개정판] 파이썬 머신러닝 완벽 가이드

DataFrame의 Groupby시 Named Aggregation적용

DataFrame Groupby 시 Aggregation 관련

322

퀵러닝

작성한 질문수 1

0

 
안녕하세요? 강의 잘 듣고 있습니다.
DataFrame Groupby 시 Aggregation 을 위해 dictionary 를 적용하는 경우, 동일한 key 값에 두 가지 function 을 할당하여 생기는 문제에 대한 해결책으로 named aggregation 을 사용하셨는데요, 리스트를 사용하는 것이 좀 더 간단하지 않을까요?
 
예)
agg_format = {'Age' : 'max', 'Age' : 'mean' , 'Fare' : 'mean' }
titanic_df.groupby('Pclass').agg(agg_format)
위와 같이 사용할 경우 'Age' 키값에 'max' 가 조회되지 않는 문제가 있지만,
agg_format = {'Age' : ['max' ,'mean'] , 'Fare' : 'mean' }
이와 같이 list를 value 값으로 주면 named aggregation 보다 코드가 간결해지며, display 시 max, mean 등 함수명이 column에 표기되므로 시각적으로도 더 나아 보입니다.
또한, 하나의 Aggregation 함수만 사용하는 경우에도, 아래와 같이 리스트를 사용하면 각 Column에 적용된 함수가 무엇인지 명시적으로 display 되게 할 수 있습니다.
agg_format = {'Age' : ['max' ] , 'Fare' : ['mean'] }
 

dataframe groupby 통계 머신러닝 배워볼래요? aggregation python

답변 1

0

권 철민

안녕하십니까, 

말씀하신대로 group by 를 적용하면 더 직관적으로 적용될 수 있습니다. 

그런데 이 방법도 마찬가지로 번거로운 점이 있습니다. 바로 컬럼이 Multi Index로 만들어 진다는 점입니다.

agg_format = {'Age' : ['max' ,'mean'] , 'Fare' : 'mean' }

titanic_grp = titanic_df.groupby('Pclass').agg(agg_format)

print(titanic_grp.columns)

=> 

MultiIndex([( 'Age',  'max'),
            ( 'Age', 'mean'),
            ('Fare', 'mean')],
           )

Multi Index 컬럼으로 되면  컬럼을 바로 접근하기가 귀찮습니다.

물론 Multi Index에 익숙해 지면 상관없을 수 있지만, 그렇게 하기 위해서는 다시 Multi Index 강의를 만들어서 설명을 해야 합니다.  하지만 보통 Multi Index를 사용하는 경우는 그렇게 많지 않기 때문에 Group by 설명하자고 다시 Multi Index를 설명하는 것은 오히려 강의가 늘어진다고 생각합니다. 

Multi Index 컬럼을 다시 Single Index컬럼으로 만들수는 있습니다. 이 역시 추가적인 코딩이 필요합니다.

때문에 아예 Multi Index로 만들어 지는 Group by 사용법은 소개 드리지 않았습니다. 

좋은 의견 주셔서 감사합니다. 

 

 

 

모델 서빙과 관련된 강좌가 출시되는지 질문드립니다.

0

56

2

안녕하세요 열심히 수강중인 학생입니다

0

93

2

정수 인덱싱

0

86

2

넘파이 오류

0

115

2

11강 numpy의 axis 축 질문 드립니다.

0

109

2

Kaggle 에서 Santander customer satisfaction data 를 다운로드 되지가 않습니다.

0

98

2

Feature importances 를 보여주는 barplot 이 그래프로 안보여져요.

0

81

2

타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.

0

83

2

타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.

0

75

2

5강 강의 오류가 있어요.

0

90

1

실무에서 LTV 관련 모델 선택 질문입니다!

0

81

2

14강 강의 듣는중에 궁금한게 있어서 질문합니다~

0

79

3

파이썬 다운그레이 후 사이킷런 재설치

0

131

2

좋은 강의 감사합니다.

0

82

2

scoring 함수 음수값

0

75

2

6번 강의에 사이킷런, 파이썬, 아나콘다 각각 버전 일치 안 시키고 진행해도 강의 따라가 지나요?

0

108

2

분류 평가 정확도 예측

0

90

2

안녕하세요. 강의 들으면서 업무에 적용하고 싶은 수강생입니다.

0

114

1

카카오톡 채널 있나요

0

119

1

혹시 강의에서 사용하시는 ppt 받을 수 있는건가요

0

195

2

pca 스케일링 관련하여 질문드립니다.

0

109

2

주피터 대신 구글 코랩

0

184

2

강의에서 사용하는 pdf or ppt자료는 따로 없는 건가요?

0

156

2

실루엣 스코어..

0

93

2