Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python Pandas - 특정 데이터 타입(dtype)을 가진 열 선택하기

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() 메서드를 활용하면 대용량 데이터에서 수치형 열만 추출해 통계 분석을 하거나, 범주형 열만 골라 인코딩을 적용하는 등의 전처리 작업을 효율적으로 수행할 수 있습니다.