본문 바로가기

STUDY/Python

[Pandas] describe()

특정 데이터(DataFrame)를 EDA 할 때에, 거의 반드시라고 해도 좋을 정도로 꼭 해주어야 하는 것 중 하나가 feature들의 기술통계량을 확인하는 것이다.

 

이 때, describe()을 사용한다.

 

바로 예시를 한번 보자.

 

아래와 같은 데이터가 있다.

df의 기본 정보

 

9개의 컬럼을 가지며, 각 컬럼의 데이터 타입은 object, datetime, float, int형 등등이다.

 

그리고, 수치형 feature들의 데이터에 대해 평균값이 얼마일지, 최소값이나 최대값은 얼마일지 등등의 정보를 보고 싶다고 하자.

 

1. describe()

이럴 때 쓸 수 있는 것이 describe()다.

사용법은 간단하다.

df.describe()

 

이렇게 코드 한 줄로 간단하게 확인할 수 있다.

 

그러나 위에서도 확인할 수 있듯 기술통계량이기 때문에 기본적으로 object형 데이터 타입을 가진 feature들의 정보는 나오지 않는다.

 

하지만 그러한 컬럼들에 대해서도 통계량을 확인해볼 수 있다.

어떻게?

 

 

2. describe(include='object')

describe()에 include='object'라는 파라미터를 추가해주면 된다!

 

백문이 불여일견이라, 확인해보자.

df.describe(include='object')

 

object라는 데이터 타입을 가진 컬럼들에 대한 정보를 보고 싶었던 본인은, include='object' 라는 파라미터를 추가했다.

그리고, 정보가 잘 출력된 것을 볼 수 있다.

 

당연하지만, 범주형 feature들이므로 min max 이런 게 나오지 않고(나올 수도 없거니와), count, unique, top, freq 가 표시된다.

 

order_id는

 - 780502행(count)을 가지고

 - 고유값(unique)의 개수는 43955개이며

 - 가장 많이 등장하는 데이터(top)는 576339라는 데이터이고 가장 많이 나온 데이터인 576339는

 - 총 542번 등장(freq)했음을 알 수 있다.

 

 

만족스러운 결과다.

 

허나, 욕심을 좀 더 부려서 범주형, 수치형 컬럼의 정보를 한 번에 보고 싶다면?

 

3. describe(include='all')

include='all' 이라는 파라미터를 추가하자.

 

범주형 feature를 위한 정보인 unique, top, freq는 수치형 feature에 대해서는 NaN을, 그 외의 정보는 범주형 feature에 대해서는 NaN을 출력함을 볼 수 있다.

 

 

더 많은 정보는 역시 공식 사이트를 참고해보도록 하자!

https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.describe.html

 

pandas.DataFrame.describe — pandas 2.1.4 documentation

The percentiles to include in the output. All should fall between 0 and 1. The default is [.25, .5, .75], which returns the 25th, 50th, and 75th percentiles.

pandas.pydata.org