Pandas는 데이터 조작과 분석을 위해 설계된 강력하고 유연한 Python 라이브러리입니다. Pandas는 Series와 DataFrame과 같은 기본 데이터 구조를 제공하여 구조화된 데이터를 효율적으로 처리할 수 있습니다. 직관적인 문법과 다양한 기능 덕분에 데이터 과학자, 분석가, 엔지니어들에게 필수 도구로 자리 잡고 있습니다.
Dataframe
DataFrame은 Pandas에서 제공하는 2차원 데이터 구조로, 크기가 변경 가능하며 이질적인 데이터를 담을 수 있습니다. 관계형 데이터베이스의 테이블이나 Excel의 스프레드시트와 유사하며, 행(row)과 열(column)로 구성되어 있습니다.
DataFrame은 보통 아래와 같이 사용합니다.
import pandas as pd
data = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'Salary': [50000, 60000, 70000]
}
df = pd.DataFrame(data)
print(df)
#출력
Name Age Salary
0 Alice 25 50000
1 Bob 30 60000
2 Charlie 35 70000
이번 블로그에서는 Dataframe의 Groupby 메소드와 Pivot_table 메소드에 대해서 설명해볼까 합니다.
groupby 메서드
groupby는 데이터를 하나 이상의 열(column)을 기준으로 그룹화하여 합계, 평균, 개수와 같은 집계 연산을 수행할 수 있는 메서드입니다.
주요 특징:
• 데이터를 그룹으로 나눕니다.
• 각 그룹에 독립적으로 함수를 적용합니다.
• 결과를 새로운 DataFrame으로 반환합니다.
예제:
# 샘플 데이터
data = {
'Department': ['HR', 'IT', 'HR', 'Finance', 'IT', 'Finance'],
'Employee': ['Alice', 'Bob', 'Charlie', 'David', 'Eve', 'Frank'],
'Salary': [50000, 70000, 60000, 80000, 75000, 85000]
}
df = pd.DataFrame(data)
# 부서별 평균 급여 계산
grouped = df.groupby('Department')['Salary'].mean()
print(grouped)
#출력
Department
Finance 82500.0
HR 55000.0
IT 72500.0
Name: Salary, dtype: float64
pivot_table 메서드
pivot_table은 데이터를 요약하고 재구성하여 테이블 형식으로 정리하는 메서드로, Excel의 피벗 테이블과 유사합니다. 다차원 데이터를 분석할 때 특히 유용합니다.
주요 매개변수:
• values: 집계할 열(column)을 지정.
• index: 행(row)을 지정.
• columns: 열(column)을 지정.
• aggfunc: 집계 함수 지정 (기본값은 mean).
예제:
# 샘플 데이터
data = {
'Department': ['HR', 'IT', 'HR', 'Finance', 'IT', 'Finance'],
'Employee': ['Alice', 'Bob', 'Charlie', 'David', 'Eve', 'Frank'],
'Salary': [50000, 70000, 60000, 80000, 75000, 85000],
'Years': [2, 5, 3, 10, 6, 15]
}
df = pd.DataFrame(data)
# 피벗 테이블 생성
pivot = pd.pivot_table(df,
values='Salary',
index='Department',
columns='Years',
aggfunc='mean',
fill_value=0)
print(pivot)
#출력
Years 2 3 5 6 10 15
Department
Finance 0 0 0 0 80000 85000
HR 50000 60000 0 0 0 0
IT 0 0 70000 75000 0 0
Group By와 Pivot Table의 차이점
기능 | groupby | pivot_table |
목적 | 그룹별로 데이터를 집계. | 데이터를 테이블 형식으로 요약. |
출력 형식 | Series 또는 DataFrame 반환. | 피벗 스타일 테이블 반환. |
집계 함수 적용 방식 | .apply() 또는 .agg() 메서드 사용. | aggfunc 매개변수로 설정. |
다차원 데이터 처리 | 계층적 인덱싱(Hierarchical Indexing) 제한. | 다차원 피벗 분석 가능. |
결론
Pandas의 groupby와 pivot_table은 데이터 분석에 있어 필수적인 도구입니다. groupby는 데이터를 그룹화하고 변환하는 데 강점을 가지며, pivot_table은 다차원 데이터를 재구성하고 요약하는 데 유용합니다. 이 두 메서드의 기능과 차이점을 이해하면 데이터 분석 작업의 효율성을 크게 향상시킬 수 있습니다.