728x90
반응형
데이터프레임은 전체적인 분포가 어떻게 되는지 보기 위해
아래처럼 제일 기본적으로 사용하는 편입니다.
>>> s = pd.Series([1, 2, 3])
>>> s.describe()
count 3.0
mean 2.0
std 1.0
min 1.0
25% 1.5
50% 2.0
75% 2.5
max 3.0
dtype: float64
(Source: Geeksforgeeks)
하지만 기본 기능외에도 유용한 기능들이 있어서 정리해보려 합니다
1. Datetime 데이터 타입에 Describe 적용하기
datetime_is_numeric=True
>>> s = pd.Series([
... np.datetime64("2000-01-01"),
... np.datetime64("2010-01-01"),
... np.datetime64("2010-01-01")
... ])
>>> s.describe(datetime_is_numeric=True)
count 3
mean 2006-09-01 08:00:00
min 2000-01-01 00:00:00
25% 2004-12-31 12:00:00
50% 2010-01-01 00:00:00
75% 2010-01-01 00:00:00
max 2010-01-01 00:00:00
dtype: object
이렇게 datetime_is_numeric을 설정해주면 날짜 데이터의 범위가 어떻게 되는지도 쉽게 알 수 있습니다.
2. 특정 데이터 타입 포함/미포함 설정
df.describe(include='all')
수치형 데이터 뿐만 아니라 다른 데이터 타입도 같이 제시해달라는 기능입니다
>>> df.describe(include='all')
categorical numeric object
count 3 3.0 3
unique 3 NaN 3
top f NaN a
freq 1 NaN 1
mean NaN 2.0 NaN
std NaN 1.0 NaN
min NaN 1.0 NaN
25% NaN 1.5 NaN
50% NaN 2.0 NaN
75% NaN 2.5 NaN
max NaN 3.0 NaN
df.describe(include=[np.number])
>>> df.describe(include=[np.number])
numeric
count 3.0
mean 2.0
std 1.0
min 1.0
25% 1.5
50% 2.0
75% 2.5
max 3.0
물론 include에는 이런 np.number외에도 다른 데이터 타입 명시가 가능합니다
df.describe(exclude=[object])
이번에는 include와 반대로 exclude하는 방법입니다
>>> df.describe(exclude=[object])
categorical numeric
count 3 3.0
unique 3 NaN
top f NaN
freq 1 NaN
mean NaN 2.0
std NaN 1.0
min NaN 1.0
25% NaN 1.5
50% NaN 2.0
75% NaN 2.5
max NaN 3.0
3. Describe 숫자 포맷 정하기
가끔 describe를 쓰면 소수점 5자리까지 나오는 등 가독성이 안 좋을 때 사용하는 방법입니다
- 포맷팅 사용하기
train.describe().apply("{:.1f}".format)
- Round 사용하기
df.describe().round(1)
Example code source:
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.describe.html
728x90
반응형
'Data Science > Machine Learning' 카테고리의 다른 글
Train , Test 데이터 전처리를 위해 병합하는 방법 정리 ! (0) | 2022.10.13 |
---|---|
카테고리형 데이터가 많을 시 고려사항 😮 (0) | 2022.10.13 |
[ Scikit-learn ] compose.ColumnTransformer, make_column_transformer 정리 (0) | 2022.10.13 |
[ Scikit-learn ] Train, test데이터 분리(train_test_split, StratifiedShuffleSplit) (0) | 2022.10.02 |
[Scikit-learn] sklearn.feature_selection.SelectFrom Model (0) | 2022.09.23 |
댓글