Pandas를 사용한 데이터 집계 및 통계 분석은 데이터에서 유용한 정보를 추출하는 데 필수적입니다. 다양한 내장 함수와 메서드를 통해 데이터를 요약하고 통계적 특성을 파악할 수 있습니다.
기본 통계 함수
DataFrame과 Series에서 사용할 수 있는 기본 통계 함수들:
# python
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [1, 2, 3, 4, 5],
'B': [10, 20, 30, 40, 50],
'C': [100, 200, 300, 400, 500]})
# 평균
print(df.mean())
# 중앙값
print(df.median())
# 표준편차
print(df.std())
# 최소값, 최대값
print(df.min(), df.max())
# 사분위수
print(df.quantile([0.25, 0.5, 0.75]))
# 기술통계 요약
print(df.describe())
#
그룹별 집계
그룹별로 데이터를 집계하는 방법:
# python
df = pd.DataFrame({
'category': ['A', 'B', 'A', 'B', 'A'],
'value': [10, 20, 30, 40, 50]
})
# 카테고리별 평균
print(df.groupby('category').mean())
# 여러 집계 함수 동시 적용
print(df.groupby('category').agg(['mean', 'sum', 'count']))
#
사용자 정의 집계 함수
`agg()` 메서드를 사용하여 사용자 정의 집계 함수를 적용할 수 있습니다:
# python
def range_func(x):
return x.max() - x.min()
print(df.groupby('category').agg({'value': ['mean', range_func]}))
#
피벗 테이블
피벗 테이블을 사용하여 데이터를 재구성하고 집계할 수 있습니다:
# python
df = pd.DataFrame({
'A': ['foo', 'foo', 'foo', 'bar', 'bar', 'bar'],
'B': ['one', 'one', 'two', 'two', 'one', 'one'],
'C': [1, 2, 3, 4, 5, 6],
'D': [10, 20, 30, 40, 50, 60]
})
pivot_table = pd.pivot_table(df, values=['C', 'D'], index=['A', 'B'], aggfunc={'C': np.sum, 'D': np.mean})
print(pivot_table)
#
상관관계 및 공분산
변수 간의 관계를 분석하는 방법:
# python
# 상관관계
print(df.corr())
# 공분산
print(df.cov())
#
시계열 데이터 분석
시계열 데이터에 대한 특별한 분석 기능:
# python
dates = pd.date_range('20230101', periods=6)
ts = pd.Series(np.random.randn(6), index=dates)
# 이동평균
print(ts.rolling(window=3).mean())
# 확장 창 평균
print(ts.expanding().mean())
#
고급 통계 기능
Pandas는 SciPy와 통합되어 더 복잡한 통계 분석을 수행할 수 있습니다:
# python
from scipy import stats
# t-검정
t_stat, p_value = stats.ttest_ind(df['A'], df['B'])
print(f"t-statistic: {t_stat}, p-value: {p_value}")
#
이러한 데이터 집계 및 통계 기능을 활용하면 데이터셋의 특성을 깊이 있게 이해하고, 의미 있는 인사이트를 도출할 수 있습니다. Pandas의 강력한 기능을 통해 복잡한 데이터 분석 작업을 효율적으로 수행할 수 있습니다.
#파이썬 #Python #데이터분석 #dataanalysis #데이터집계 #데이터통계 #pandas #statistics #aggregation #descriptive-statistics
0 댓글