Pandas (12)

tino-kim·2022년 1월 4일
0
post-thumbnail

🥴 Pandas (12)

📌 데이터 타입별 column 선택하는 select_dtypes

😀 머신러닝을 다룰 때, 알고리즘에 숫자를 넣어줘야 하는 경우들이 있다. 그래서 문자열을 모두 숫자형으로 바꿔줘야 하는 경우가 있는데 그 때 select_dtypes를 이용할 수 있다.

  • object
    문자열로 봐도 무방하다. 따로 떼어내서 데이터를 볼 수 있다.
  • NOT-object
    숫자형으로 봐도 무방하다. 따로 떼어내서 데이터를 볼 수 있다.
df.select_dtypes(inclue='object')
# 문자형 칼럼만 보고 싶다
df.select_dtypes(exclue='object')
# 문자형 칼럼을 제외한 숫자형 칼럼만 보고 싶다
  • include와 exclude
    include = 'object'
    exclude = 'object'
  • 문자열이 포함된 칼럼의 이름과 숫자형이 포함된 칼럼의 이름을 찾기.
num_cols = df.select_dtypes(exclude='object').columns
obj_cols = df.select_dtypes(include='object').columns
df[num_cols]
# 숫자형으로 이루어진 칼럼들만 모아서 데이터 프레임 만들어주기
df[obj_cols]
# 문자형으로 이루어진 칼럼들만 모아서 데이터 프레임 만들어주기

📌 One-hot-encoding

  • 한개의 요소는 True 그리고 나머지 요소는 False로 만들어 주는 기법이다.
  • 왜 필요한가?
blood_map = {
    'A': 0, 
    'B': 1,
    'AB': 2, 
    'O': 3,
}
df['혈액형_code'] = df['혈액형'].map(blood_map)
df['혈액형_code'].value_counts()

컴퓨터는 B형 + AB형 = O형이다라고 잘못 관계를 맺을 수 있게 된다.
하지만, A, B, AB, O형의 관계는 독립적이다.
따라서 독립적임을 표현하기 위해서 원핫인코딩을 이용한다.

pd.get_dummies(df['혈액형_code'])
# 독립적임을 표현해준다
pd.get_dummies(df['혈액형_code'], prefix='혈액형')
# 혈액형 원핫인코딩이니, prefix를 혈액형이라고 지정하기
# 그렇게 하면 좀 더 편하게 볼 수 있다

😀 마무리...

머신러닝에 넣어줄 값들을 전처리해줄 때, 사용하는 기법이다.

profile
알고리즘과 웹 개발과 데이터 과학을 공부하는 대학생

0개의 댓글