목차
파이썬에서는 수많은 라이브러리를 사용하는데, 각 라이브러리마다 갖고 있는 메서드들이 있습니다. 데이터 분석을 위해 파이썬을 이용하시는 분들이라면 이러한 메서드들의 종류와 사용 목적을 정확히 알아야 합니다. 오늘은 판다스 라이브러리 중 데이터 프레임의 메서드들 중에서 통계 관련된 것들을 정리해 보려고 합니다.
1. describe()
오늘 메서드를 설명하기 위한 기본 데이터는 아래와 같은 코드로 생성합니다. Pandas을 pd라는 이름으로 임포트를 하고, 딕션너리 형태의 데이터를 만들어 준 후 DataFrame이라는 메서드를 통해 df 객체를 생성해 줍니다.
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David', 'Ella'],
'age': [25, 30, 45, 22, 37],
'height': [165.2, 180.3, 175.0, 160.9, 170.7],
'weight': [62.3, 75.0, 80.1, 57.2, 68.5]}
df = pd.DataFrame(data)
'describe()'는 데이터 프레임의 기술 통계 정보를 요약해서 출력하는 메서드입니다. df.describe(percentiles=None, include=None, exclude=None, datetime_is_numeric=False) 형태로 사용하며, 기본적으로 숫자형 데이터에 대한 통계 정보를 출력합니다. percentiles를 통해 원하는 분위수의 값을 지정할 수 있고, include와 exclude를 통해 특정 데이터 타입의 열만 선택하거나 제외할 수도 있습니다. datetime_is_numeric을 True로 설정하면 datetime 타입의 열도 숫자형 데이터로 취급하여 통계 정보를 출력합니다.
df = pd.DataFrame(data)
# describe() 메소드 사용
print(df.describe())
# 결과값
# age height weight
#count 5.000000 5.000000 5.000000
#mean 31.800000 169.420000 68.620000
#std 10.301691 7.865767 8.202088
#min 22.000000 160.900000 57.200000
#25% 25.000000 165.200000 62.300000
#50% 30.000000 170.700000 68.500000
#75% 37.000000 175.000000 75.000000
#max 45.000000 180.300000 80.100000
2. mean()
데이터 프레임의 각 열의 평균값을 계산하는 메서드입니다. df.mean(axis=None, skipna=None, level=None, numeric_only=None, **kwargs) 형태로 사용하며, axis를 통해 평균을 계산할 축을 지정할 수 있습니다. skipna를 False로 설정하면 결측치를 포함하여 평균을 계산하고, True로 설정하면 결측치를 제외한 평균을 계산합니다.
print(df.mean())
# 결과값
#age 31.80
#height 170.42
#weight 68.62
#dtype: float64
3. median()
데이터 프레임의 각 열의 중앙값을 계산하는 메서드입니다. df.median(axis=None, skipna=None, level=None, numeric_only=None, **kwargs) 형태로 사용하며, axis를 통해 중앙값을 계산할 축을 지정할 수 있습니다. skipna를 False로 설정하면 결측치를 포함하여 중앙값을 계산하고, True로 설정하면 결측치를 제외한 중앙값을 계산합니다.
print(df.median())
#결과값
#age 30.0
#height 170.7
#weight 68.5
#dtype: float64
4. min()
데이터 프레임의 각 열의 최솟값을 계산하는 메서드입니다. df.min(axis=None, skipna=None, level=None, numeric_only=None, **kwargs) 형태로 사용하며, axis를 통해 최솟값을 계산할 축을 지정할 수 있습니다. skipna를 False로 설정하면 결측치를 포함하여 최솟값을 계산하고, True로 설정하면 결측치를 제외한 최솟값을 계산합니다.
print(df.min())
# 결과값
#name Alice
#age 22
#height 160.9
#weight 57.2
#dtype: object
5. max()
데이터 프레임의 각 열의 최댓값을 계산하는 메서드입니다. df.max(axis=None, skipna=None, level=None, numeric_only=None, **kwargs) 형태로 사용하며, axis를 통해 최댓값을 계산할 축을 지정할 수 있습니다. skipna를 False로 설정하면 결측치를 포함하여 최댓값을 계산하고, True로 설정하면 결측치를 제외한 최댓값을 계산합니다.
print(df.max())
# 결과값
#
#name Ella
#age 45
#height 180.3
#weight 80.1
#dtype: object
6 sum()
데이터 프레임의 각 열의 합계를 계산하는 메서드입니다. df.sum(axis=None, skipna=None, level=None, numeric_only=None, min_count=0, **kwargs) 형태로 사용하며, axis를 통해 합계를 계산할 축을 지정할 수 있습니다. skipna를 False로 설정하면 결측치를 포함하여 합계를 계산하고, True로 설정하면 결측치를 제외한 합계를 계산합니다. 이번 데이터에서 name 칼럼에 있는 데이터들은 문자열인데 sum을 하게 되면 문자열들을 다 붙여주는 결과가 나옵니다.
print(df.sum())
#결과값
#name AliceBobCharlieDavidElla
#age 159
#height 852.1
#weight 343.1
#dtype: object
7. std()
데이터 프레임의 각 열의 표준편차를 계산하는 메서드입니다. df.std(axis=None, skipna=None, level=None, ddof=1, numeric_only=None, **kwargs) 형태로 사용하며, axis를 통해 표준편차를 계산할 축을 지정할 수 있습니다. skipna를 False로 설정하면 결측치를 포함하여 표준편차를 계산하고, True로 설정하면 결측치를 제외한 표준편차를 계산합니다. ddof는 자유도를 지정하는데, 기본값은 1로 설정되어 있습니다.
std() 메서드는 숫자만 계산합니다. 데이터 안에 문자열이 들어가게 되면 해당 값을 제외한 결괏값을 반환합니다. 일반적으로 데이터 프레임 안에 숫자와 문자가 같이 존재하는 경우가 있는데, 해다 메서드를 사용한 결과는 data의 칼럼 개수와 다를 수 있습니다.
print(df.std())
# 결과값
#age 9.311283
#height 7.690059
#weight 9.258348
#dtype: float64
8. var()
데이터 프레임의 각 열의 분산을 계산하는 메서드입니다. df.var(axis=None, skipna=None, level=None, ddof=1, numeric_only=None, **kwargs) 형태로 사용하며, axis를 통해 분산을 계산할 축을 지정할 수 있습니다. skipna를 False로 설정하면 결측치를 포함하여 분산을 계산하고, True로 설정하면 결측치를 제외한 분산을 계산합니다. ddof는 자유도를 지정하는데, 기본값은 1로 설정되어 있습니다. std()와 마찬가지로 문자열은 취급하지 않습니다.
print(df.var())
#결과값
#age 86.700
#height 59.137
#weight 85.717
#dtype: float64
9. corr()
데이터 프레임의 각 열 간의 상관계수를 계산하는 메서드입니다. df.corr(method='pearson', min_periods=1) 형태로 사용하며, method를 통해 상관계수를 계산하는 방법을 선택할 수 있습니다. 기본값은 'pearson'으로 피어슨 상관계수를 계산합니다. min_periods는 최소한으로 필요한 유효한 관측치의 개수를 지정하는데, 기본값은 1로 설정되어 있습니다.
print(df.corr())
# age height weight
#age 1.000000 0.603735 0.853526
#height 0.603735 1.000000 0.903434
#weight 0.853526 0.903434 1.000000
10. 마치며
지금까지 판다스 내 데이터프레임의 메서드들 중에서 통계값을 구할 때 사용하는 것들에 대해 알아보았습니다. 파이썬 라이브러리 사용에 있어 가장 어려운 부부이 메서드들의 파라미터에 대한 이해일 겁니다. 파이썬 메서드들의 사용에 있어 파라미터들이 의미하는 것과 그에 따른 결과에 대해 지속적인 포스팅을 할 예정입니다.