이전 글에서 이어지는 글입니다.
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
반응형
'데이터 사이언스 메뉴얼 > pandas' 카테고리의 다른 글
파이썬 Pandas groupby 이해하고 활용하기 -4 (0) | 2020.04.08 |
---|---|
파이썬 Pandas groupby 이해하고 활용하기 -3 (0) | 2020.04.06 |
파이썬 Pandas groupby 이해하고 활용하기 -1 (0) | 2020.04.05 |
파이썬 Pandas NaN 데이터 처리하기 (0) | 2020.03.17 |
파이썬 Pandas DataFrame column 추가 / 삭제하기 (0) | 2020.03.16 |
최근댓글