본문 바로가기

PYTHON

PANDAS :: groupby()

12시간도 안돼서 블로그 글쓴다.

사실 10시에 쓰려 했는데 게으름 피우느라 이제 쓰는 중,,

내일부터는 딱 10시에 맞춰서 쓰기 시작해야지

 

 

 

판다스에서 정말 유용하게 사용하는 groupby에 대해 알아보자.

데이터는 다른 블로그글을 참고하여, 전복 데이터를 분석했다.

https://rfriend.tistory.com/383 감사합니다 선생님

 

 

여담> 전복은 영어로 abalone이라고 하는데,

우리가 아는 그 아발론이 설마 전복인가 싶어서 찾아봤다.

그 아발론은 Avalon이었음ㅎㅅㅎ 잡지식 get!

 

 

 


 

 

#필요한_패키지_import

import pandas as pd
from pandas import DataFrame
from pandas import Series
import numpy as np

 

 

#load_data

데이터 일부만 갖고옴, describe 사용했을 때 'sex'는 범주여서 뜨지 않았다.

연습 겸 할 수 있는 온갖 걸 다 해봤다ㅎ

 

 

 

#find_NA

위의 결과에 pandas의 isnull도 포함되어있다.

전체적인 결과를 알기 위해 numpy 패키지 이용하여 sum 해보았다.

** pd.isnull(abalone).sum()도 동일한 결과가 나온다.

 

 

 

 

 


 

 

 

groupby()

 

 

 

이제 대망의 groupby를 사용해보자.

이 뒤로 abalone치기가 너무 힘들어서 data로 그냥 수정했다....ㅎ

 

 

 

#groupby()

sex에 대해 groupby.

 

 

#집단별_크기_size()

 

 

 

#집단별_합계_sum()

 

 

 

#집단별_평균_mean()

 

** 이 코드도 가능하다>

   data.groupby('sex').mean()

 

 

 

 

 

 

#new_variable을_만들어보자.

R에 ifelse 함수가 있다면 파이썬엔 np.where이 있다.

median 값보다 length가 작으면  short, 크면 long으로 입력.

 

 

 

 

#생성한 데이터와 성별을 기준으로 groupby를 해주자.

- 이때는 whole_weight만 활용해주었고, mean을 이용해 grouping된 data를 mean해주었다.

 

** 이 코드도 가능하다>

  data.groupby(['sex','new'])['whole_weight'].mean()

  * 중요한 건, 이때는 whole_weight를 뒤에 적어줘야 한다는 것!

 

 

 

그런데 집계결과가 좀 구리지 않은가? 보기가 안 이쁘다.

-이럴 때는 unstack함수를 사용하여 가로축, 세로축으로 결과값이 보이게끔 나타내준다!

위의 mean된 데이터를 grouped_two로 정의한 뒤 unstack()

 

'PYTHON' 카테고리의 다른 글