본문 바로가기
Python/Pandas

데이터 요약을 위한 describe() 메서드-pandas(37)

by 콩돌 2020. 10. 12.
반응형

파이썬 버전 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 입력변수를 사용하는 예제이다. 


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

In[11]: sample_df.describe(include=['number'])

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

 

 

 

 



반응형

댓글