본문 바로가기
Python/Pandas

pandas dataframe 다중 조건에 따른 그룹화

by PySun 2023. 9. 22.
반응형

판다스 라이브러리를 사용하여 다중 조건을 기반으로 데이터를 그룹화하는 다양한 케이스에 대한 예시 코드와 함께 설명하겠습니다.

Case 1: 두 개의 열을 기준으로 그룹화하기

두 개의 열을 기준으로 데이터를 그룹화하고 각 그룹에 대한 통계를 계산하는 경우입니다.

import pandas as pd

# 샘플 데이터프레임 생성
data = {'과목': ['수학', '과학', '수학', '과학', '영어'],
        '성별': ['남', '여', '남', '여', '여'],
        '점수': [90, 85, 88, 92, 78]}

df = pd.DataFrame(data)

# '과목'과 '성별' 열을 기준으로 그룹화하여 평균 점수 계산
grouped = df.groupby(['과목', '성별'])['점수'].mean()

# 결과 확인
print(grouped)

Case 2: 여러 열에 대한 다중 조건을 기반으로 그룹화하기

여러 열에 대한 다중 조건을 기준으로 데이터를 그룹화하고 각 그룹에 대한 통계를 계산하는 경우입니다.

import pandas as pd

# 샘플 데이터프레임 생성
data = {'과목': ['수학', '과학', '수학', '과학', '영어'],
        '성별': ['남', '여', '남', '여', '여'],
        '학년': [1, 2, 1, 2, 3],
        '점수': [90, 85, 88, 92, 78]}

df = pd.DataFrame(data)

# '과목', '성별', '학년' 열을 기준으로 그룹화하여 평균 점수 계산
grouped = df.groupby(['과목', '성별', '학년'])['점수'].mean()

# 결과 확인
print(grouped)

Case 3: 다중 조건을 기반으로 그룹화한 데이터 시각화

다중 조건을 기반으로 그룹화한 데이터를 시각화하는 경우입니다.

import pandas as pd
import matplotlib.pyplot as plt

# 샘플 데이터프레임 생성
data = {'과목': ['수학', '과학', '수학', '과학', '영어'],
        '성별': ['남', '여', '남', '여', '여'],
        '학년': [1, 2, 1, 2, 3],
        '점수': [90, 85, 88, 92, 78]}

df = pd.DataFrame(data)

# '과목', '성별', '학년' 열을 기준으로 그룹화하여 평균 점수 계산
grouped = df.groupby(['과목', '성별', '학년'])['점수'].mean()

# 그룹별 평균 점수 시각화
grouped.unstack().plot(kind='bar', stacked=True)
plt.title('과목, 성별, 학년별 평균 점수')
plt.xlabel('그룹')
plt.ylabel('평균 점수')
plt.show()

위의 예시 코드에서는 판다스를 사용하여 다중 조건을 기반으로 데이터를 그룹화하고 그룹화된 데이터를 시각화하는 방법을 설명하였습니다. 이를 통해 데이터의 복잡한 구조를 다룰 수 있습니다.

반응형