판다스 get_dummies

2020. 8. 25. 23:48캐리의 데이터 세상/캐리의 데이터 공부 기록

반응형

두 시간째 자료형 오류로 멘탈이 나가는 중.

ValueError: could not convert string to float:

모델 만들고 학습 시키는 중인데.................... 회귀분석을 위해 범주형 문자열 값을 숫자형으로 변환하려고 get_dummies()를 사용했건만 자꾸 오류 등장에 다시 뜯어보는 중...더 코드 길어지기 전에 다시 하는것도 방법이겠거니.

pandas.get_dummies

pandas.get_dummies(data, prefix=None, prefix_sep='_', dummy_na=False, columns=None, 
sparse=False, drop_first=False, dtype=None)

Convert categorical variable into dummy/indicator variables.

Parameters data array-like, Series, or DataFrame

Data of which to get dummy indicators.

 

 

러신머닝의 80프로가 전처리라는 말이 새삼 와닿는 밤.....

오류 해결하면 코드 업데이트...

 


 

fifa_df_ohe = pd.get_dummies(fifa_df)

통으로 get_dummies()를 쓰다가 오류가 계속 이어지면서 찾아보다가

object 자료형인 특정 피처만 따로 뽑아서 아래와 같이 인코딩

continent_encoding = pd.get_dummies(fifa['continent'])
fifa = fifa.drop('continent',axis=1)
fifa = fifa.join(continent_encoding)
#   Column                       Non-Null Count  Dtype  
---  ------                       --------------  -----  
 0   id                           8932 non-null   int64  
 1   age                          8932 non-null   int64  
 2   reputation                   8932 non-null   float64
 3   stat_overall                 8932 non-null   int64  
 4   stat_potential               8932 non-null   int64  
 5   stat_skill_moves             8932 non-null   float64
 6   value                        8932 non-null   float64
 7   continent_africa             8932 non-null   uint8  
 8   continent_asia               8932 non-null   uint8  
 9   continent_europe             8932 non-null   uint8  
 10  continent_oceania            8932 non-null   uint8  
 11  continent_south america      8932 non-null   uint8  
 12  contract_until_2018          8932 non-null   uint8  
 13  contract_until_2019          8932 non-null   uint8  
 14  contract_until_2020          8932 non-null   uint8  
 15  contract_until_2021          8932 non-null   uint8  

어찌어찌 분석은 되는데 다른 라벨링 인코딩 방식도 다시 찾아보고 적용해볼 예정.

반응형