데이터 분석을 위한 Pandas: 5. 데이터 집계 및 통계

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 댓글