본문 바로가기
IT/파이썬(Python)

파이썬 데이터 프레임 집계 aggregate()

by 깡타의 컴맹인생 2023. 4. 14.
반응형

데이터 프레임 집계

저번 포스팅에서는 groupby()라는 함수에 대해 알아보았다. 이번 시간에는 데이터 프레임 그룹화 이후에 최댓값, 최솟값과 같은 집계를 간단하게 한 번에 해낼 수 있는 방법에 대해 설명하려고 한다.

 

https://ggangtalife.tistory.com/117

 

파이썬 데이터 프레임 그룹화 groupby()

위와 같은 엑셀 데이터가 있다고 하자. 이 데이터를 pandas 라이브러리를 활용해 데이터 프레임의 형태로 만든 다음, 과일의 이름별로 그룹화를 해보려고 한다. 그룹화는 간단한 집계를 넘어서서

ggangtalife.tistory.com

1
2
3
4
5
6
7
import pandas as pd
 
df = pd.read_excel('230412.xlsx')
display(df)
 
df = df.groupby(['이름'], sort = True).sum(['가격'])
display(df)
cs

먼저 위와 같이 코드를 작성하여 과일의 이름별로 그룹화하여 가격의 합계를 계산해 보았다. groupby() 함수를 사용하여 할 수 있는 연산은 매우 다양하다. 최댓값(max), 최솟값(min), 평균(mean) 등 다양한 연산이 존재한다. 이때 우리는 어떤 데이터를 가지고 그 데이터들의 합계, 최대, 최소, 평균값을 하나의 데이터 프레임으로 나타내고 싶을 때가 있다. 그때 aggregate() 함수를 사용하면 된다.

aggregate(['집계함수1', '집계함수2', '집계함수3'…])

aggregate({'컬럼명1' : '집계함수1', '컬럼명2' : '집계함수2'…})
1
2
3
4
5
6
7
import pandas as pd
 
df = pd.read_excel('230412.xlsx')
display(df)
 
df = df.groupby(['이름'])['가격'].aggregate(['min''sum''max'])
display(df)
cs

aggregate() 함수를 사용하여 최소, 합계, 최댓값을 구해봤다. 엑셀 원본 데이터와 비교하면 올바르게 연산이 된 것을 확인할 수 있다.

1
2
3
4
5
import pandas as pd
 
df = pd.read_excel('230412.xlsx')
df = df.groupby(['이름']).aggregate({'가격' : 'sum'})
display(df)
cs

과일의 이름을 기준으로 가격의 합계를 구하고 싶은 경우 위와 같이 작성해도 된다. groupby() 함수를 사용해 먼저 '이름' 열을 기준으로 데이터를 합친다. aggregate() 함수에 집계를 원하는 열인 '가격' 열을 입력하고 해당 열에 대해 'sum' 연산을 수행한다.

반응형