본문 바로가기

Pandas/응용

판다스 - groupby : transform

반응형

transform 메서드

그룹별로 구분하여 각 원소에 함수를 적용하지만

그룹별 집계 대신 각 원소의 본래 행 인덱스와 열 이름을 기준으로

연산 결과를 반환

 

 

즉, 그룹 연산의 결과를 원본 데이터프레임과 같은 형태로 변형하여 정리하는 것.

 

 

 

말로만 보면 헷갈리니 쉬운 예시로 살펴보자

 

 

원본 데이터프레임
그룹화

 

 

함수 정의

 

 

val 컬럼에 적용해보자

 

이는 

 

grouped['val'].apply(minus)와 동일한 결과이다.

 

그렇다면 굳이 transform을 써야할까?

 

답은 '그렇다' 이다.

 

 

 

 

transform 메서드는 위와 같이

 

연산 가능한 컬럼에만 적용해서 데이터프레임 형식으로 보여준다.

 

val2 컬럼은 문자열이기 때문에 minus를 할 수 없다.

 

물론 그룹별로 볼 수 없지만

 

이를 새 컬럼으로 추가하는 작업 등에는 간단하고 편하다.

 

 

 

 

 

 

다른 예시로 더 살펴보자

 

원본 데이터프레임
그룹화

 

 

사용자 정의 함수

 

 

 

 

 

A그룹의 val 평균값은 3

B그룹의 val 평균값은 4.5

C그룹의 val 평균값은 7

 

위 값들이 0, 1, 2번 행에 누락값 대신 잘 들어갔음을 확인했다.

 

그룹별로는 보기 힘들지만

 

원본 데이터프레임의 인덱스와 컬럼으로 가져올 수 있다는 장점이 있다.

 

 

다음 포스팅에선 transform의 활용에 대해 알아보겠다.

반응형