코딩하는 해맑은 거북이

[Pandas] select_dtypes - 특정 데이터 타입 열만 가져오기 본문

Python/Numpy | Pandas

[Pandas] select_dtypes - 특정 데이터 타입 열만 가져오기

#CJE 2023. 12. 18.
해당 글은 특정 데이터 타입의 열만 가져올 수 있는 select_dtypes 함수를 소개한다.
📌 DataFrame.select_dtypes(include=None, exclude=None)
 

pandas.DataFrame.select_dtypes — pandas 2.1.4 documentation

To select Pandas datetimetz dtypes, use 'datetimetz' or 'datetime64[ns, tz]'

pandas.pydata.org

 

*예시 데이터

import pandas as pd

df = pd.DataFrame({
    'col1': [1, 2, 3],
    'col2': ['a', 'b', 'c'],
    'col3': [1.1, 2.2, 3.3]
})

df.info()

 

 

📌 DataFrame.select_dtypes(include=None, exclude=None)

  • include 옵션은 포함할 타입의 scalar 혹은 list 형태로 지정
  • exclude 옵션은 제외할 타입의 scalar 혹은 list 형태로 지정
# 정수형 컬럼만 선택
int_columns = df.select_dtypes(include='int')
display(int_columns)

# 실수형 컬럼만 선택
float_columns = df.select_dtypes(include='float')
display(float_columns)

# 문자형 컬럼만 선택
object_columns = df.select_dtypes(include='object')
display(object_columns)

 

# 정수형 컬럼만 제외
not_int_columns = df.select_dtypes(exclude='int')
display(not_int_columns)

# 실수형 컬럼만 제외
not_float_columns = df.select_dtypes(exclude='float')
display(not_float_columns)

# 문자형 컬럼만 제외
not_object_columns = df.select_dtypes(exclude='object')
display(not_object_columns)

 

# 정수형 컬럼만 제외
not_int_columns = df.select_dtypes(include=['float', 'object'])
display(not_int_columns)

# 실수형 컬럼만 제외
not_float_columns = df.select_dtypes(include=['int', 'object'])
display(not_float_columns)

# 문자형 컬럼만 제외
not_object_columns = df.select_dtypes(include=['int', 'float'])
display(not_object_columns)

 

 

cf) select_dtypes와 비슷하게 loc를 이용해서 특정 타입의 열도 가져올 수 있다.

하지만, 여러 타입을 지정해주어야 할 때, 조건문이 길어지므로 select_dtypes를 사용하면 더욱 간편하게 가져올 수 있다!

# 정수형 컬럼만 선택
int_columns = df.loc[:, df.dtypes == 'int']
display(int_columns)

# 실수형 컬럼만 선택
float_columns = df.loc[:, df.dtypes == 'float']
display(float_columns)

# 문자형 컬럼만 선택
object_columns = df.loc[:, df.dtypes == 'object']
display(object_columns)

 

# 정수형 컬럼만 제외
not_int_columns = df.loc[:, df.dtypes != 'int']
display(not_int_columns)

# 실수형 컬럼만 제외
not_float_columns = df.loc[:, df.dtypes != 'float']
display(not_float_columns)

# 문자형 컬럼만 제외
not_object_columns = df.loc[:, df.dtypes != 'object']
display(not_object_columns)

 

# 정수형 컬럼만 제외
not_int_columns = df.loc[:, (df.dtypes == 'float') | (df.dtypes == 'object')]
display(not_int_columns)

# 실수형 컬럼만 제외
not_float_columns = df.loc[:, (df.dtypes == 'int') | (df.dtypes == 'object')]
display(not_float_columns)

# 문자형 컬럼만 제외
not_object_columns = df.loc[:, (df.dtypes == 'int') | (df.dtypes == 'float')]
display(not_object_columns)

Comments