본문 바로가기

Pandas/응용

판다스 - groupby : aggregate, size

반응형
데이터프레임

DataFrameGroupBy

SeriesGroupBy
.size()
시리즈 .size

 

 

 

 

데이터 불러오기

 

 

 

 

grp 컬럼으로 그룹핑 → grouped

 

 

first를 이용해 그룹화된 데이터프레임을 살펴본다.

 

타입은 DataFrameGroupBy이기에

.size()를 이용해야 한다.

 

 

 

 

 

 

각 그룹별 행의 개수를 보자

 

 

 

 

 

 

 

grouped의 하나의 컬럼별로, 행의 개수를 세기 위해선 size() 일까 size일까

 

 

위에 나온대로 하나의 컬럼을 선택하면

 

유형은 SeriesGroupBy로 나타난다.

 

 

이를 시리즈라고 생각해, .size를 이용한다면

 

에러는 나지 않으나 원하는 대로 시리즈가 보이지 않는다.

 

 

이에 .size()를 이용하면 보고 싶은 결과가 나타난다.

 

따라서 SeriesGroupBy도 .size()를 이용해야함을 알 수 있다.

 

 

 

 

 

 

agg메서드를 이용할 땐 어떻게 될까

 

 

agg 메서드를 이용하면

 

그룹별로 val 컬럼의 행의 개수를 세게된다.

 

 

 

예를 들어 A그룹의 val 컬럼을 보자면

 

 

이러한 흐름이므로

 

A그룹의 val 컬럼은 시리즈,

 

따라서 .size를 이용한다.

 

 

 

 

 

이전 포스팅에 의하면

 

(https://steadiness-193.tistory.com/35)

 

판다스 - groupby : aggregate (agg 메서드 안의 기준 컬럼, count 이용)

데이터 불러오기 C 컬럼의 초성별로 그룹화 했다. count 각 컬럼별 누락값을 제외한 값을 셌다. 1보다 큰 값을 가지는 불린 데이터프레임도 나타냈다. 여기서 agg() 메서드를 이용해보자 위의 결과��

steadiness-193.tistory.com

 

agg() 메서드 안의 컬럼을 기준으로 모든 값이 통일 된다고 했다.

 

 

 

즉, 

 

 

val컬럼의 값을 val2 컬럼이 받는다는 것이다.

 

다만 size는 누락값에 관계없이 행의 개수를 세기에 값이 다를 리가 없다.

 

 

 

 

 

 

 

[주의할 점]

 

 

사실 컬럼 지정 없이 바로

 

size를 이용하면 같은 결과를 얻을 수 있다.

 

 

다만, 뒤에 나올 filter 메서드에선 

 

컬럼 지정을 하지 않으면 이상한 결과가 나오니

 

 

꼭 컬럼명을 명시하는 습관을 기르자

반응형