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