본문 바로가기

CS?/pandas

[Pandas] 데이터 프레임에서 원하는 데이터 타입 컬럼만 추출하기 - select_dtypes

반응형

데이터 프레임 컬럼 추출 작업을 하다보면 원하는 데이터 타입의 컬럼을 뽑고 싶을 때가 있다. 그럴 때 사용할 수 있는 것이 "select_dtypes"이다.

 

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

 

파라미터 : include, exclude

포함하거나 (include), 제외할 (exclude) 데이터 타입을 작성한다.  두 값 중 하나는 무조건 할당되어야 하며, 중복될 수 없다.

 

리턴값 : Dataframe

파라미터 조건에 맞는 컬럼이 데이터프레임으로 만들어져 데이터프레임 타입으로 반환된다.

 

에러 발생

1. 파라미터로 아무 값도 주지 않았을 때 (include와 exclude 모두 지정하지 않은 채 select_dtype()으로 실행했을 때)

2. include와 exclude가 동일한 값으로 설정되었을 때

3. 모든 종류의 데이터 타입이 파리미터로 지정되었을 때

 

파라미터로 입력하는 데이터 타입 주의 사항

1. 숫자형 : number / np.number

2. 문자형 : object

3. datetime : np.datetime64 / datetime / datetime64

4. timedelta : use np.timedelta64 / timedelta / timedelta64

5. 카테고리 : category

6. datetimetz : datetimetz / datetime64[ns, tz]

 

예시로 살펴보자!

#데이터 프레임 만들기
df = pd.DataFrame({'int': [1, 2] * 3,
                   'boolean': [True, False] * 3,
                   'float1': [1.0, 2.0] * 3,
                   'datetime': [datetime(2022, 1, 1), datetime(2022, 12, 31)] * 3,
                   'float2': [5.0, 6.0] * 3,})
df​

 

데이터 프레임에 int, boolean, datetime 타입의 컬럼 각 1개와 float 타입의 컬럼 2개를 생성하였다.

 

이제 여기서 "include" 파라미터 방식을 확인해보자.

#boolean 데이터 타입 컬럼만
df.select_dtypes(include="bool")

#integer 데이터 타입 컬럼만
df.select_dtypes(include="int")

#float 데이터 타입 컬럼만
df.select_dtypes(include="float")

#datetime 데이터 타입 컬럼만
df.select_dtypes(include="datetime")

 

이제 여기서 "exclude" 파라미터 방식을 확인해보자.

# float 데이터 타입 컬럼을 제외한 나머지 컬럼
df.select_dtypes(exclude="float")

 


본 포스팅은 모두의 연구소 I love data 랩에서 진행하였습니다.

 

전체 코드는 아래 colab 노트북에서 확인해주세요

 

[pandas] select_dtype().ipynb

Colaboratory notebook

colab.research.google.com

 

pandas.DataFrame.select_dtypes — pandas 1.5.1 documentation

To select Pandas datetimetz dtypes, use 'datetimetz' (new in 0.20.0) or 'datetime64[ns, tz]'

pandas.pydata.org

반응형