본문 바로가기
2학년 2학기/데이터 사이언스 입문

[pandas] GroupBy: Apply

by kkkkk1023 2024. 10. 29.

 

이전에 배웠던 기준에 따라 선택된 데이터들끼리 연산하는 것이 Apply이다. 

 

 

Aggregation

: sum, median, max, min 같이 값들을 하나로 요약하는 과정이다. 

 

 

이런 식으로 aggregate와 함께 연산을 써주면, key로 분류된 데이터들 각각에 min, medianm, max 연산을 해주고 그 결과를 보여준다. 이렇게 모든 열(data1, data2)에 같은 연산을 한번에 할 수도 있지만, 각 열에 다른 연산도 가능하다. 

 

이렇게 data1에는 min연산을하고, data2에는 max연산을 해줄 수도 있다.

 

 

 

 

 

Filter

: 그룹을 기준으로 특정 조건에 맞는 데이터만 남기는 과정이다. 예들 들면 그룹 별 평균이 특정 값 이상인 데이터만 남기는 것

 

왜 groupby된 데이터 프레임이 나오지 않고, 원본 데이터 형식으로 나오는가?

: groupby().filter() 메서드는 조건을 충족하는 그룹을 원본 데이터 프레임에서 해당 하는 행을 남기기 때문이다. 즉, groupby된 데이터 프레임이 필터가 되더라도 결과는 원본 데이터에서 해당 조건에 해당하는 행들이 출력된다. 

 

 

 

 

 

Transformation

: 데이터를 그룹별로 변환하지만 형태는 원래 데이터와 같은 형태를 유지한다. 예들 들면 데이터의 표준화나 정규화 등을 수행하는 것

 

 

 

 

 

Apply

: 그룹에 대해서 사용자 정의 연산을 구현하여 적용하는 것

 

 

위의 과정은 각 그룹화된 데이터의 data2의 값의 합을 그룹화 된 데이터 각각의 data1에 나누기해서 저장한 결과이다. 

즉, A의 data2 합은 8이므로, data1이 0인 A는 data1이 0.000000으로 변경되고, data1이 3인 A는 data1이 0.375000으로 변경되는 것이다.