이전 글에서 이어지는 글입니다.

 

(JY) 파이썬 Pandas groupby 이해하고 활용하기 -1

import pandas as pd train_data = pd.read_csv('./train.csv') train_data.head() Groupby 이해하기 모든 groupby 연산은 기존 객체에 대해 다음과 같은 연산 중 하나를 포함한다. 데이터 분할하기 데이터 연산..

dsbook.tistory.com


2. 데이터 연산하기 -2)

3) 기존의 DataFrame 형태를 그대로 유지한채로 연산하기: transform()

train_data.groupby('Pclass').mean()

그룹핑을 한 후 바로 연산을 하면, 그룹핑된 column들이 index레벨에 내려간 채로 연산이 진행되게 되며, 원본 DataFrame과 완전히 새로운 DataFrame이 새로 만들어 지게 된다. 만약, 원본 index와 DataFrame을 그대로 유지하면서 각 범주별 통계치를 원본 DataFrame에 대입하고 싶으면 transform() 함수를 사용하면 된다. 이때, transform() 함수에 들어가는 첫번째 인자는 함수이다. 전체 데이터 집계가 아닌 각 그룹에서의 집계를 계산하기 때문에 새로 생성된 데이터를 원본 DataFrame에 합치기 쉽다.

# Pclass의 범주별로 각 column별 통계치를 구한 다음 원본 DataFrame에 대입한다.
train_data.groupby('Pclass').transform(np.mean)

 

 

아래의 코드들은 서로 같은 결과를 출력한다.

class_group = train_data.groupby('Pclass').transform(np.mean)
train_data['Age2'] = class_group['Age']
train_data['Age2']= train_data.groupby('Pclass').transform(np.mean)['Age']

 

 

다중 index에서도 가능하다.

train_data.groupby(['Pclass', 'Sex']).mean()

train_data['Age3'] = train_data.groupby(['Pclass', 'Sex']).transform(np.mean)['Age']

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기