groupby()
groupby()는 데이터를 범주별로(categorical) 묶어서 통계 또는 집계 결과를 얻기 위해 사용한다.
import pandas as pd
df = pd.read_csv('../data/fake_company.csv') # 파일 경로를 입력
df
# 각 년도별로, 지급한 연봉 총합을 구하세요.
df.groupby('Year')
>>> <pandas.core.groupby.generic.DataFrameGroupBy object at 0x000001F41CF468E0>
# 년도별로 그룹화한 GroupBy객체가 생성된다
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
# Name 컬럼은, 각 이름별로 몇개의 데이터가 있나?
# 1.groupby를 사용하는 방법
df.groupby('Name')['Name'].count()
>>> Name
Alice 3
Bob 3
Charlie 3
Name: Name, dtype: int64
# 2. value_counts() 함수를 사용할 수도 있다.
df['Name'].value_counts()
>>> Name
Alice 3
Bob 3
Charlie 3
Name: Name, dtype: int64
agg(), aggregate()
파라미터에 함수 이름을 전달하면, GroupBy 객체에 함수를 적용한다.
여러 개의 통계 함수를 사용하거나 개발자가 직접 작성한 함수를 전달할 수도 있다.
# 년도 별로, 연봉의 총합, 평균, 표준편차를 보여주세요.
import numpy as np
df.groupby('Year')['Salary'].agg( [np.sum, np.mean, np.std] )
# 데이터프레임으로 반환된다.
'Python > Pandas' 카테고리의 다른 글
Pandas 활용(8) - str 관련 메소드 (0) | 2022.11.28 |
---|---|
Pandas 활용(7) - 함수의 일괄 적용 apply (0) | 2022.11.28 |
Pandas 활용(5) - 결측값(NaN) 처리 (0) | 2022.11.27 |
Pandas 활용(4) - 인덱스명, 컬럼명 변경 (0) | 2022.11.27 |
Pandas 활용(3) - 데이터프레임의 데이터 변경, 추가, 삭제 (0) | 2022.11.25 |