반응형
transform 메서드
그룹별로 구분하여 각 원소에 함수를 적용하지만
그룹별 집계 대신 각 원소의 본래 행 인덱스와 열 이름을 기준으로
연산 결과를 반환
즉, 그룹 연산의 결과를 원본 데이터프레임과 같은 형태로 변형하여 정리하는 것.
말로만 보면 헷갈리니 쉬운 예시로 살펴보자
val 컬럼에 적용해보자
이는
grouped['val'].apply(minus)와 동일한 결과이다.
그렇다면 굳이 transform을 써야할까?
답은 '그렇다' 이다.
transform 메서드는 위와 같이
연산 가능한 컬럼에만 적용해서 데이터프레임 형식으로 보여준다.
val2 컬럼은 문자열이기 때문에 minus를 할 수 없다.
물론 그룹별로 볼 수 없지만
이를 새 컬럼으로 추가하는 작업 등에는 간단하고 편하다.
다른 예시로 더 살펴보자
A그룹의 val 평균값은 3
B그룹의 val 평균값은 4.5
C그룹의 val 평균값은 7
위 값들이 0, 1, 2번 행에 누락값 대신 잘 들어갔음을 확인했다.
그룹별로는 보기 힘들지만
원본 데이터프레임의 인덱스와 컬럼으로 가져올 수 있다는 장점이 있다.
다음 포스팅에선 transform의 활용에 대해 알아보겠다.
반응형
'Pandas > 응용' 카테고리의 다른 글
판다스 - groupby : apply와 transform (차이) (0) | 2020.06.23 |
---|---|
판다스 - groupby : transform(응용) (0) | 2020.06.23 |
판다스 - groupby : apply (0) | 2020.06.23 |
판다스 - groupby : filter (len, size, count) (0) | 2020.06.22 |
판다스 - groupby : aggregate, size (0) | 2020.06.22 |