-
pandas dadtaframe 수치형 / 범주형 분리python 기초 2024. 8. 24. 21:22728x90
Data frame 처리를 하다보면 수치형과 범주형 데이터를 따로 처리하고 싶을 때가 있다.
데이터 프레임을 분류하는 몇가지 방법이 있다.
1. data frame에 _get_numeric_data 함수가 있어서 이를 써도 된다.
: 편한 장점이 있는데, 범주형엔 별도의 함수가 없는 듯하다.
2. select_dtypes 함수를 이용, 원하는 데이터 type만 가져올수 있다.
3. dtypes를 보고 해당 dtype에 해당되는 column만 선택한다.
: 약간 불편하지만, 데이터 타입들을 확인하고 갈수 있어서 더 안심이 되는 느낌이다.In [1]:from IPython.core.display import display, HTML display(HTML("<style>.container {width:90% !important;}</style>")) import pandas as pd import seaborn as sns
In [2]:df=pd.DataFrame(sns.load_dataset('mpg')) df.head()
Out[2]:mpg cylinders displacement horsepower weight acceleration model_year origin name 0 18.0 8 307.0 130.0 3504 12.0 70 usa chevrolet chevelle malibu 1 15.0 8 350.0 165.0 3693 11.5 70 usa buick skylark 320 2 18.0 8 318.0 150.0 3436 11.0 70 usa plymouth satellite 3 16.0 8 304.0 150.0 3433 12.0 70 usa amc rebel sst 4 17.0 8 302.0 140.0 3449 10.5 70 usa ford torino DataFrame._get_numeric_date 활용
In [3]:df._get_numeric_data()
Out[3]:mpg cylinders displacement horsepower weight acceleration model_year 0 18.0 8 307.0 130.0 3504 12.0 70 1 15.0 8 350.0 165.0 3693 11.5 70 2 18.0 8 318.0 150.0 3436 11.0 70 3 16.0 8 304.0 150.0 3433 12.0 70 4 17.0 8 302.0 140.0 3449 10.5 70 ... ... ... ... ... ... ... ... 393 27.0 4 140.0 86.0 2790 15.6 82 394 44.0 4 97.0 52.0 2130 24.6 82 395 32.0 4 135.0 84.0 2295 11.6 82 396 28.0 4 120.0 79.0 2625 18.6 82 397 31.0 4 119.0 82.0 2720 19.4 82 398 rows × 7 columns
dytpes를 이용, 데이터 타입을 체크한다.
In [4]:df.dtypes
Out[4]:mpg float64 cylinders int64 displacement float64 horsepower float64 weight int64 acceleration float64 model_year int64 origin object name object dtype: object
object와 나머지로 data를 나눠준다.
In [5]:df_obj=df[df.dtypes[df.dtypes=='object'].index] df_num=df[df.dtypes[df.dtypes!='object'].index]
In [6]:df_obj
Out[6]:origin name 0 usa chevrolet chevelle malibu 1 usa buick skylark 320 2 usa plymouth satellite 3 usa amc rebel sst 4 usa ford torino ... ... ... 393 usa ford mustang gl 394 europe vw pickup 395 usa dodge rampage 396 usa ford ranger 397 usa chevy s-10 398 rows × 2 columns
In [7]:df_num
Out[7]:mpg cylinders displacement horsepower weight acceleration model_year 0 18.0 8 307.0 130.0 3504 12.0 70 1 15.0 8 350.0 165.0 3693 11.5 70 2 18.0 8 318.0 150.0 3436 11.0 70 3 16.0 8 304.0 150.0 3433 12.0 70 4 17.0 8 302.0 140.0 3449 10.5 70 ... ... ... ... ... ... ... ... 393 27.0 4 140.0 86.0 2790 15.6 82 394 44.0 4 97.0 52.0 2130 24.6 82 395 32.0 4 135.0 84.0 2295 11.6 82 396 28.0 4 120.0 79.0 2625 18.6 82 397 31.0 4 119.0 82.0 2720 19.4 82 398 rows × 7 columns
728x90'python 기초' 카테고리의 다른 글
sklearn standard scaler (0) 2024.08.27 pandas read_csv sep 옵션 (0) 2024.08.25 zfill string 자릿수 맞추기 (0) 2024.02.26 numpy array slicing이 원본 크기를 넘어 섰을 때 (0) 2024.01.01 pillow-simd install 에러 (0) 2023.12.18