파이썬 버전 3.8 기준
pandas 버전 1.1.1 기준
데이터 요약을 위한 describe() 메서드 |
본 포스팅에서는 각종 통계량을 요약해서 출력해주는 describe() 메서드에 대해 다루도록 한다.
describe() 메서드 |
describe() 메서드는 다양한 통계량을 요약해주는 굉장히 편리한 메서드이다.
○ 통계량은 Series에 대해 요약이 수행된다.
○ DataFrame의 경우 열에 대해 요약이 수행된다.
○ 기본적으로 누락데이터(NaN)는 제외되고 데이터 요약이 수행된다.
다음은 메서드 사용의 형식을 보여준다.
메서드 사용 형식)
result=object.describe(percentiles=None, include=None)
각 입력 객체별 설명은 다음과 같다.
○ percentiles: 이 입력변수에는 분위수를 출력하기 위한 데이터를 입력받는다.
▷ 기본값으로 [0.25, 0.5, 0.75]을 출력하게 설정되어 있다.
○ include: 이 입력변수는 결과를 요약하기 위한 데이터 타입의 리스트를 입력받는다.
메서드 사용 예제 |
예제를 수행하기 위해 다음과 같이 셋업을 수행한다.
모듈의 임폴트)
# pandas와 numpy의 import
In[2]: import pandas as pd
In[3]: import numpy as np
describe() 메서드 사용
아래 예제는 describe() 메서드를 사용하는 예제이다.
메서드 사용 예제 )
# 예제용 DataFrame의 정의
In[4]: sample_df= pd.DataFrame([[9.1, 1.2, 1.3, 1.4], [2.1, 9.2, 9.3, 2.4], [3.1, 3.2, 3.3, 3.4]], index=['a', 'b', 'c'], columns=['A','B','C','D'])
# ex1-1: Series에 대한 메서드 사용 예제
In[5]: sample_df['A'].describe()
Out[5]:
count 3.000000
mean 4.766667
std 3.785939
min 2.100000
25% 2.600000
50% 3.100000
75% 6.100000
max 9.100000
Name: A, dtype: float64
# ex1-2: DataFrame에 대한 메서드 사용 예제
In[6]: sample_df.describe()
Out[6]:
A B C D
count 3.000000 3.000000 3.000000 3.0
mean 4.766667 4.533333 4.633333 2.4
std 3.785939 4.163332 4.163332 1.0
min 2.100000 1.200000 1.300000 1.4
25% 2.600000 2.200000 2.300000 1.9
50% 3.100000 3.200000 3.300000 2.4
75% 6.100000 6.200000 6.300000 2.9
max 9.100000 9.200000 9.300000 3.4
percentiles 입력변수
아래 예제는 percentiles 입력변수를 적용하는 예제이다.
○ 예제와 같이 출력하기위한 분위수에 해당하는 데이터들을 리스트형태로 입력하면 된다.
percentiles 입력변수 사용 예제)
# ex2: percentiles 입력변수 사용 예제
In[7]: sample_df.describe(percentiles=[.01, .25, .75, .99])
Out[7]:
A B C D
count 3.000000 3.000000 3.000000 3.00
mean 4.766667 4.533333 4.633333 2.40
std 3.785939 4.163332 4.163332 1.00
min 2.100000 1.200000 1.300000 1.40
1% 2.120000 1.240000 1.340000 1.42
25% 2.600000 2.200000 2.300000 1.90
50% 3.100000 3.200000 3.300000 2.40
75% 6.100000 6.200000 6.300000 2.90
99% 8.980000 9.080000 9.180000 3.38
max 9.100000 9.200000 9.300000 3.40
include 입력변수의 사용
include 입력변수 사용 예제)
# 예제용 DataFrame의 정의
In[8]: sample_df= pd.DataFrame([['a', 1.2, 1.3, 1.4], ['b', 9.2, 9.3, 2.4], ['c', 3.2, 3.3, 3.4]], index=['a', 'b', 'c'], columns=['A','B','C','D'])
# ex3-1: 메서드 기본적용
In[9]: sample_df.describe()
Out[9]:
B C D
count 3.000000 3.000000 3.0
mean 4.533333 4.633333 2.4
std 4.163332 4.163332 1.0
min 1.200000 1.300000 1.4
25% 2.200000 2.300000 1.9
50% 3.200000 3.300000 2.4
75% 6.200000 6.300000 2.9
max 9.200000 9.300000 3.4
# ex3-2: include 변수 사용 예제1
In[10]: sample_df.describe(include=['object'])
Out[10]:
A
count 3
unique 3
top c
freq 1
# ex3-3: include 변수 사용 예제2
Out[11]:
B C D
count 3.000000 3.000000 3.0
mean 4.533333 4.633333 2.4
std 4.163332 4.163332 1.0
min 1.200000 1.300000 1.4
25% 2.200000 2.300000 1.9
50% 3.200000 3.300000 2.4
75% 6.200000 6.300000 2.9
max 9.200000 9.300000 3.4
# ex3-3: include 변수 사용 예제3
In[12]: sample_df.describe(include='all')
Out[12]:
A B C D
count 3 3.000000 3.000000 3.0
unique 3 NaN NaN NaN
top c NaN NaN NaN
freq 1 NaN NaN NaN
mean NaN 4.533333 4.633333 2.4
std NaN 4.163332 4.163332 1.0
min NaN 1.200000 1.300000 1.4
25% NaN 2.200000 2.300000 1.9
50% NaN 3.200000 3.300000 2.4
75% NaN 6.200000 6.300000 2.9
max NaN 9.200000 9.300000 3.4
describe() 메서드 세부사항 |
이 메서드는 pandas 객체의 설명적 통계량(descriptive statistic)들을 생성하는데 사용된다.
설명적 통계량에는 NaN 값을 제외한 데이터 집합 분포의 형상, 중심 경향, 분산을 요약하는 것들이 포함된다.
이 메서드는 수치 및 객체 Series와 여러 데이터 타입을 포함하는 DataFrame 열의 집합을 분석할 수 있다.
출력은 제공된 자료에 따라 다양하게 제공된다.
DataFrame.describe(percentiles=None, include=None, exclude=None, datetime_is_numeric=False) |
percentiles: list-like of numbers, optional
선택적으로 입력 가능하다.
분위수가 출력되는 퍼센트를 입력받는다.
입력되는 값은 0과 1사이어야 한다.
기본값으로는 [0.25, 0.5, 0.75]가 입력되어 있다.
○ 이 값들은 25%, 50%, 75%퍼센트를 의미한다.
include: ‘all’, list-like of dtypes or None (default), optional
선택적으로 입력이 가능하다.
기본값은 None이다.
결과를 요약하기 위한 데이터 타입의 리스트를 입력받는다.
Series에 대해서는 무시된다.
○ 'all' : 입력의 모든 열이 데이터 출력으로 포함된다.
○ None: 수치데이터가 있는 열만 결과에 포함한다. (기본값)
○ A list-like of dtypes: 결과를 입력된 데이터 타입으로 제한한다.
▷ 결과를 숫자 타입으로 제한하기 위해서는 numpy.number를 입력하면된다.
▷ 객체 타입으로 결과를 제한하고 싶으면 numpy.object 를 입력하면 된다.
▷ 문자열(String) select_dtypes (ex: df.describe (include = [ 'O'])) 스타일로도 사용할 수 있다.
▷ 'category'를 사용하여 categorical 열을 선택할 수 있다.
exclude: list-like of dtypes or None (default), optional,
결과를 제외하기위한 데이터 타입의 리스트를 입력받는다.
○ None: 제외시키는 데이터가 없을 경우 입력한다. (기본값)
○ A list-like of dtypes: 입력된 데이터 타입은 출력에 제외된다.
▷ 결과를 숫자 타입을 제외하기 위해서는 numpy.number를 입력하면된다.
▷ 객체 타입을 제외하고 싶으면 numpy.object 를 입력하면 된다.
▷ 문자열(String) select_dtypes (ex: df.describe (include = [ 'O'])) 스타일로도 사용할 수 있다.
▷ 'category'를 사용하여 categorical 열을 제외할 수 있다.
datetime_is_numeric: bool, default False
기본값은 False이다.
datetime dtype을 수치데이터로 다룰지 여부를 결정한다.
이것은 열을 따라 계산된 통계량에 영향을 미친다.
DataFrame 입력에 대해서는 datetime 열이 기본값으로 포함되어 있는지 여부를 제어한다.
|
|
|
| 참고자료 https://pandas.pydata.org/docs/user_guide/basics.html https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.describe.html |
|
|
|
|
'Python > Pandas' 카테고리의 다른 글
중복 요소 수 세기(히스토그래밍) value_counts 메서드-pandas(39) (0) | 2020.10.16 |
---|---|
최대/최소값 인덱스(레이블) idxmin, idxmax 메서드-pandas(38) (0) | 2020.10.15 |
pandas에서의 통계함수(메서드)-pandas(36) (0) | 2020.10.11 |
요소별 함수의 적용 applymap(), map() 메서드-pandas(35) (0) | 2020.10.10 |
다중(여러개) 함수 적용 transform() 메서드-pandas(34) (0) | 2020.10.09 |
댓글