본문 바로가기

Pandas/응용

판다스 - groupby : set_index와 사용자 정의 함수로 그룹핑

반응형
 

판다스 - groupby : 함수로 그룹핑하기

사전이나 시리즈로 그룹핑하는 것보다 함수로 그룹핑하는 것이 보다 더 일반적이다. 그룹 색인으로 넘긴 함수는 색인값 하나마다 한 번씩 호출되며 반환값은 그 그룹의 이름으로 사용된다. 데��

steadiness-193.tistory.com

 

 

 

판다스 - groupby : 인덱스로 그룹화하기 (멀티인덱스, level)

https://steadiness-193.tistory.com/76 판다스 - groupby : 색인 단계로 그룹핑하기(계층적 색인) 계층적 색인에서는 축 색인의 단계 중 하나를 이용해 집계할 수 있다. 데이터 만들기 컬럼이 멀티인덱스이므�

steadiness-193.tistory.com

 

 

 

판다스 - groupby : 인덱스를 함수로 그룹핑하기

https://steadiness-193.tistory.com/75 판다스 - groupby : 함수로 그룹핑하기 사전이나 시리즈로 그룹핑하는 것보다 함수로 그룹핑하는 것이 보다 더 일반적이다. 그룹 색인으로 넘긴 함수는 색인값 하나마�

steadiness-193.tistory.com

 

인덱스를 함수로 그룹핑하는 것은 이미 여러번 해보았다.

 

이번엔 set_index와 사용자 함수로 groupby를 해보자.

 

 

 

 

 

 

데이터 불러오기

 

 

Date컬럼은 datetime 자료형이다.

 

 

 

 

 

 

 

함수 정의

 

Date 컬럼에서 연월을 뽑아내는 함수다.

 

 

 

 

 

 

set_index를 이용해서 groupby

 

 

2020년 9월과 2020년 10월로 잘 그룹화되었다.

 

 

 

 

 

set_index가 아니라 groupby에 

Date컬럼과 extract_ym 함수를 넣으면 어떻게 될까?

 

 

 

예상대로 에러가 나온다.

 

 

 

 

 

 

 

set_index, groupby, 사용자 정의 함수

동시 이용

 

 

우선 Alpha 컬럼과 Date 컬럼으로 동시에 그룹핑해서 집계함수를 쓰면 다음과 같다.

 

 

 

그런데 Date를 원본 그 자체가 아니라

 

연월로만 보고 싶다면 어떻게 해야할까?

 

 

 

 

 

이때 set_index를 활용하는 것이다.

 

 

 

Date로 인덱스를 설정하고

 

Alpha컬럼으로 그룹핑한 뒤

 

Date 인덱스는 extract_ym 함수에 의해 연월만 뽑아내진 뒤

 

그 데이터로 다시 그룹핑 된 것이다.

 

 

 

 

 

 

 

순서를 바꿔도 에러는 발생하지 않는다.

 

 

 

반응형