딥상어동의 딥한 데이터 처리/전처리
[Pandas] 수치형 컬럼과 범주형 컬럼 구분하기
딥상어동의 딥한생각
2022. 7. 29. 22:37

1. 핵심내용
판다스에서 수치형 변수와 범주형 변수를 구분하는 방법을 다루어봅니다.
- _get_numeric_data
- select_dtypes()
데이터는 아래와 같이 타이타닉 데이터 셋을 불러왔습니다.
import pandas as pd
import numpy as np
data = pd.read_csv("https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv")
2. _get_numeric_data
첫 번째 방법은 _get_numeric_data메서드를 이용하는 것입니다.
all_columns = data.columns.tolist()
num_columns = data._get_numeric_data().columns.tolist()
cat_columns = list(set(all_columns) - set(num_columns))
1. _get_numeric_data()를 이용해 수치형 컬럼만 가져옵니다.
2. set자료구조를 이용해 all_columns에서 수치형 컬럼을 제외한다음
3. 다시 리스트로 변환합니다.
print(f'타이타닉 데이터 셋의 모든 컬럼은 아래와 같습니다. \n{all_columns}\n')
print(f'타이타닉 데이터 셋의 수치형 컬럼은 아래와 같습니다. \n{num_columns}\n')
print(f'타이타닉 데이터 셋의 범주형 컬럼은 아래와 같습니다. \n{cat_columns}\n')

3. select_dtypes
두 번째 방법은 select_dtypes를 이용하는 방법입니다.
num_columns = data.select_dtypes(include=np.number).columns.tolist()
cat_columns = data.select_dtypes(exclude=np.number).columns.tolist()
print(f'타이타닉 데이터 셋의 수치형 컬럼은 아래와 같습니다. \n{num_columns}\n')
print(f'타이타닉 데이터 셋의 범주형 컬럼은 아래와 같습니다. \n{cat_columns}\n')

4. 최종결과
data[num_columns].head()

data[cat_columns].head()
