개발공부

[Python]Pandas 카테고리컬 데이터 확인하기, 이를 묶어 처리하기 groupby() 본문

Python/Pandas

[Python]Pandas 카테고리컬 데이터 확인하기, 이를 묶어 처리하기 groupby()

mscha 2022. 5. 3. 12:56

groupby()

카테고리컬 데이터의 각 데이터별로 묶어서 처리하는 방법

카테고리컬 데이터인지 알 수 있는 방법은 nunique()와 unique()를 이용하면 된다.

# 카테고리컬 데이터 (Categorical Data)
# 갯수가 정해져있고 그 안에서 나눌 수 있는 것
>>> df['Year'].nunique()
3
>>> df['Year'].unique()
array([1990, 1991, 1992], dtype=int64)

df의 행갯수는 8개인데 Year 컬럼의 유니크한 갯수는 3개이다.

그러므로 Year의 데이터는 카테고리컬 데이터이다.

# 각 년도'별로' 연봉 총합 구하라

>>> df.groupby('Year')['Salary'].sum()
Year
1990    153000
1991    162000
1992    174000
Name: Salary, dtype: int64
# 각 직원별로, 연봉을 평균 얼마씩 받았는지 구하라
>>> df.groupby('Name')['Salary'].mean()
Name
Alice      54000.0
Bob        50000.0
Charlie    59000.0
Name: Salary, dtype: float64
# 년도별, 부서별로 연봉은 총 얼마씩 지급하였는지 구하라
>>> df.groupby(['Year', 'Department'])['Salary'].sum()
Year  Department
1990  Admin         55000
      HR            50000
      RD            48000
1991  Admin         60000
      HR            52000
      RD            50000
1992  Admin         62000
      HR            60000
      RD            52000
Name: Salary, dtype: int64

여러개의 계산값 얻기 agg()

# 년도별 연봉 총합과 평균을 구하라
import numpy as np
df.groupby('Year')['Salary'].agg([np.sum, np.mean])