Programming/Python
[Python] pandas.DataFrame.select_dtypes 함수
_Sun_
2023. 6. 13. 18:46
데이터 전처리할 때, 범주형 변수와 수치형 변수를 분리해서 전처리를 해주어야 하는데, 이때 사용하면 좋을 거 같아 정리.
정의
Return a subset of the DataFrame's columns based on the column dtypes
즉, 설정한 DataFrame의 컬럼을 반환하는 함수
DataFrame.select_dtypes(include = None, exclude = None)
사용가능한 데이터 타입
데이터 타입명 | 입력 형식 | 비고 |
all numerical types | np.number 또는 'number' | |
string | object | return all object dtype columns |
datetimes | np.datetime64 또는 'datetime' 또는 'datetime64' | |
timedeltas | np.timedelta64 또는 'timedelta' 또는 'timedelta64' | |
categorical dtypes | 'category' | |
datetimetz dtypes | 'datetimetz' 또는 'datetime64[ns,tz]' | 'datetimetz' (pandas v0.20.0에서 가능) |
이 외 bool, float64, int64 등 다양한 타입 사용 가능
사용예시
실습에 사용할 예시 DataFrame 만들기
>>> import pandas as pd
>>> df = pd.DataFrame({'size': [2, 4, 8, 1],
... 'order_counts': [0, 5, 8, 2],
... 'num_counts': [10, 2, 1, 8],
... 'sweetness': ['very sweet','sweet','moderately sweet','not sweet']},
... index=['plum', 'peach', 'watermelon', 'blueberry'])
>>> df
size order_counts num_counts sweetness
plum 2 0 10 very sweet
peach 4 5 2 sweet
watermelon 8 8 1 moderately sweet
blueberry 1 2 8 not sweet
>>> df.select_dtypes(include = 'number')
size order_counts num_counts
plum 2 0 10
peach 4 5 2
watermelon 8 8 1
blueberry 1 2 8
>>> df.select_dtypes(exclude = 'number')
sweetness
plum very sweet
peach sweet
watermelon moderately sweet
blueberry not sweet
>>> df.select_dtypes(include = ['int64'])
size order_counts num_counts
plum 2 0 10
peach 4 5 2
watermelon 8 8 1
blueberry 1 2 8
Reference
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.select_dtypes.html