데이터 불러오기
tips의 데이터를 size 컬럼 별로 그룹화했다.
(size는 1, 2, 3, 4, 5, 6 의 값으로 구분된다.)
그룹화가 어떻게 되어있는지 확인을 위해 first를 사용한다.
이번에 설명할 aggregate는 groupby에서 유용하게 쓰인다.
[agg() 메서드]
1. 집계 연산을 처리하는 사용자 정의 함수를 그룹 객체에 적용
2. 연산 가능한 컬럼만 알아서 집계해 나타내 줌
(transform 메서드와 같은 기능)
3. 집계함수, list(집계함수), {컬럼:함수}
번호별로 살펴보자
1. 집계 연산을 처리하는 사용자 정의 함수
사이즈별로 total_bill 컬럼의 최대값에서 최소값을 뺀 결과이다.
2. 연산 가능한 컬럼만 알아서 집계해 나타내 줌
위의 사용자 정의 함수를 전체 grouped 객체에 적용해보자
연산이 불가능한 문자열이 담긴 컬럼 3개
(smoker, day, time)는 나오지 않고
연산 가능한 total_bill, tip컬럼만 집계되어 나왔다.
나중에 나올 apply와 다른 점이기도 하다.
3. 집계함수, list(집계함수), {컬럼:함수}
기본적으로 agg() 안에 집계함수를 집어 넣어, 결과를 볼 수 있다.
그룹별, 컬럼의 최대값을 나타낸다.
그런데 이는 agg() 없이 그냥 사용할 수 있다.
위의 결과와 동일하다.
사실
agg() 메서드의 강점은 list(집계함수), {컬럼:함수} 에 있다.
list(집계함수)
리스트 안에 집계함수를 넣으면
각각의 열에 여러개의 함수를 일괄 적용할 수 있다.
만약 컬럼별로 다른 함수를 적용하고 싶다면
{컬럼:함수} 의 딕셔너리 형태를 이용한다.
{컬럼:함수}
total_bill 컬럼에는 최대값을 요청하고
tip 컬럼에는 평균값을 요청해 받았다.
함수를 변수에 넣고 진행해도 문제 없다.
agg() 메서드는 위에서 본 바와 같이
연산 가능한 컬럼만 보여주는 것,
[집계함수, 집계함수...],
{컬럼명: 집계함수, 컬럼명: 집계함수}
위 세가지 기능을 사용하고자 할 때 매우 유용하다.
agg 메서드 이용할 때 주의할 점은 아래 포스팅 참조
https://steadiness-193.tistory.com/35
'Pandas > 응용' 카테고리의 다른 글
판다스 - groupby : aggregate, size (0) | 2020.06.22 |
---|---|
판다스 - groupby : aggregate (agg 메서드 안의 기준 컬럼, count 이용) (0) | 2020.06.22 |
판다스 - groupby (0) | 2020.06.22 |
판다스 - apply, applymap, pipe(응용3) (0) | 2020.06.22 |
판다스 - apply, applymap, pipe(응용2) (0) | 2020.06.21 |