본문 바로가기

Python skills for Data Analysis

[Functions] groupby examples

이번 시간에는 pandas의 groupby 함수를 사용해 여러 가지 작업을 수행해보겠습니다. 

매번 느끼는 거지만 분석할 때 groupby는 정말 자주 사용하는 것 같아 그 중요성을 느껴 블로그를 통해서 정리해보고 싶었어요!.

그럼 바로 시작해볼까요??

 

첫 번째로, groupby는 시각화를 할 때 조건을 추가할 수 있습니다.

 

주택 가격 예측

만약, 주택 가격을 예측하는 데이터 셋이 있다면

Suburb의 value_counts() 함수를 적용해서 상위 15개의 suburb를 count 해 출력할 수 있습니다.

 

e = df['Suburb'].value_counts()[:15]
sns.barplot(y=e.index, x=e)

이렇게요!.

하지만 여기서 가격 순으로 Suburb를 순위대로 나열하고 싶다면 

 

sub = df.groupby('Suburb')['Price'].median().sort_values(ascending=False)[:15]
sns.barplot(y=sub.index, x=sub)

 

위와 같이 그루핑을 해서 중간값(median)으로 상위 15개를 출력할 수 있습니다.!

 

어렵지 않죠?!

 

 

자, 그럼 두 번째로 넘어가 볼까요?

 

두 번째로, groupby는 한 column을 index로 지정해서 나머지 columns에 대한 통계를 낼 수도 있습니다. (만약 index로 추가하기를 원하지 않다면 as_index=False를 groupby의 parameter로 지정할 수 있습니다.)

 

w = df.groupby("Type").median() 

 

agg 함수를 사용하면 조건을 추가할 수 있습니다.

p = df.groupby('Rooms')['Rooms'].agg(['sum','mean','std'])
p

 

 

이렇게요!

 

다음은 apply 함수와 함께 써보겠습니다. apply함수도 여러 가지 형태로 사용될 수 있는데요. 다음 시간에 apply 함수를 주제로 한번 정리해보겠습니다.

 

e = df.groupby("Type")['Method'].apply(lambda x: ','.join(x)).to_frame()
e

여러 종류의 Method를 type에 , 로 구분해 넣었습니다.

 

가령, Method의 nunique 함수를 찍어보고 싶다면

 

df.groupby("Type")["Method"].nunique().to_frame()

이렇게 groupby와 같이 사용할 수도 있습니다.

 

 

 

그럼 이상으로 마치겠습니다.!

감사합니다.ㅎㅎㅎ 

'Python skills for Data Analysis' 카테고리의 다른 글

[Functions] apply(lambda x :) examples  (0) 2020.08.15
Data Visualization(데이터 시각화)  (0) 2020.07.14
Missing value processing.  (0) 2020.06.27
Data filtering  (0) 2020.06.16