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

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

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

데이터 프레임 그룹화


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

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

read_excel() 함수를 사용하여 데이터 프레임을 형성한 결과는 위와 같다. 참고로 그룹화의 기준이 될 열은 여러 개 선택할 수 있다. 이 데이터 프레임에서 '이름'과 '원산지' 열을 기준으로 그룹화를 한 결과는 다음과 같다.

귤과 원산지별로 데이터가 정리된 것을 볼 수 있다.

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

'이름' 열을 기준으로 그룹화를 한 뒤에 sum()을 입력해 더해보면 과일 별로 가격의 합계가 표출된다. 다만 FutureWarning이라는 메시지가 발생한다. 이 메시지가 발생했을 때 당장 문제가 되는 것은 없다. groupby라는 그룹화 함수의 나머지 키워드 인자를 입력하도록 요구하는 것이다. 현재는 sum() 함수를 사용했을 때 내용을 입력하지 않아도 기본적으로 숫자만 연산하도록 설정이 되어있는데 향후에는 이것이 False로 변경되어 사용자가 합계 연산을 원하는 열을 선택해줘야 한다는 뜻이다.

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

따라서 '이름' 열을 기준으로 그룹화하여 합계를 구하고 싶은 경우 위와 같이 코드를 작성하면 된다. FutureWarning 에러도 발생하지 않는다.

반응형