select_dtypes() 메서드란?
pandas DataFrame에서 특정 데이터 타입(dtype)을 가진 열만 골라내고 싶다면 select_dtypes() 메서드를 사용하면 됩니다. 이 메서드는 include 매개변수에 원하는 dtype 목록을 지정하면, 해당 조건에 맞는 열들만 자동으로 필터링해 줍니다.
예를 들어 문자열(object) 타입의 열이나 정수(int64) 타입의 열만 따로 추출해야 하는 경우, 열 이름을 하나씩 확인하지 않아도 한 번의 호출로 손쉽게 처리할 수 있습니다.
예제 DataFrame 만들기
먼저 두 개의 열을 가진 간단한 DataFrame을 생성해 보겠습니다. 하나는 문자열(object) 타입, 다른 하나는 정수(int64) 타입입니다.
import pandas as pd
# DataFrame 생성
dataFrame = pd.DataFrame(
{
"Student": ['Jack', 'Robin', 'Ted', 'Marc', 'Scarlett', 'Kat', 'John'],
"Roll Number": [5, 10, 3, 8, 2, 9, 6]
}
)
print("DataFrame ...\n", dataFrame)
print("\n전체 DataFrame 정보:\n")
print(dataFrame.info())특정 dtype의 열 선택하기
이제 include 매개변수를 활용해 object 타입과 int64 타입의 열을 각각 선택합니다.
# object 타입의 열 선택
column1 = dataFrame.select_dtypes(include=['object']).columns
# int64 타입의 열 선택
column2 = dataFrame.select_dtypes(include=['int64']).columns
print("object 타입 열 = ", column1)
print("int64 타입 열 = ", column2)전체 예제 코드
import pandas as pd
# DataFrame 생성
dataFrame = pd.DataFrame(
{
"Student": ['Jack', 'Robin', 'Ted', 'Marc', 'Scarlett', 'Kat', 'John'],
"Roll Number": [5, 10, 3, 8, 2, 9, 6]
}
)
print("DataFrame ...\n", dataFrame)
print("\n전체 DataFrame 정보:\n")
print(dataFrame.info())
# 특정 데이터 타입의 열 선택
column1 = dataFrame.select_dtypes(include=['object']).columns
column2 = dataFrame.select_dtypes(include=['int64']).columns
print("object 타입 열 = ", column1)
print("int64 타입 열 = ", column2)실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
DataFrame ... Roll Number Student 0 5 Jack 1 10 Robin 2 3 Ted 3 8 Marc 4 2 Scarlett 5 9 Kat 6 6 John 전체 DataFrame 정보: <class 'pandas.core.frame.DataFrame'> RangeIndex: 7 entries, 0 to 6 Data columns (total 2 columns): Roll Number 7 non-null int64 Student 7 non-null object dtypes: int64(1), object(1) memory usage: 184.0+ bytes None object 타입 열 = Index(['Student'], dtype='object') int64 타입 열 = Index(['Roll Number'], dtype='object')
정리 및 참고 사항
- select_dtypes(include=[...]): 지정한 dtype에 해당하는 열만 반환합니다.
- exclude 매개변수를 함께 사용하면 특정 dtype을 제외한 열만 선택할 수도 있습니다. 예:
dataFrame.select_dtypes(exclude=['object']) - 여러 개의 dtype을 동시에 지정할 수 있습니다. 예:
include=['int64', 'float64'] - 반환 결과는 열 이름을 담은 Index 객체이므로, 필요하다면
.tolist()를 사용해 리스트로 변환할 수 있습니다.
이처럼 select_dtypes() 메서드를 활용하면 대용량 데이터에서 수치형 열만 추출해 통계 분석을 하거나, 범주형 열만 골라 인코딩을 적용하는 등의 전처리 작업을 효율적으로 수행할 수 있습니다.