특정 columns을 원핫인코딩으로 바꾸고 사용하려고 할 때 해당 오류가 났다. 꽤 길게 고민했었는데 답은 간단했다.
오류가 난 코드를 살펴보면 다음과 같다.
#판다스 함수를 사용하여 원핫인코딩
genre_labels = pd.get_dummies(data['genre'])
rating_labels= pd.get_dummies(data['genre'])
#설명 변수 x확인하기
#rating과 genre는 원핫인코딩을 한 'rating_labels'랑 'genre_labels'로 바꿔줌
movies_columns = ['score', 'votes', 'budget', 'rating_labels', 'genre_labels', 'runtime']
fig=plt.figure(figsize=(16, 20))
ax = fig.gca()
data[movies_columns].hist(ax=ax)
plt.show()
오류가 난 이유는 'rating_labels'와 'genre_lables'가 당연히 data에 없는 columns이기 때문이다.
특정 컬럼을 전처리 한 후, 다시 사용하기 위해서는 (당연한 이야기이지만) 다시 해당 컬럼의 값을 넣어줘야 한다. 따라서 해당 오류를 해결하기 위해서는
#판다스 함수를 사용하여 원핫인코딩
genre_labels = pd.get_dummies(data['genre'])
rating_labels= pd.get_dummies(data['genre'])
#원핫인코딩한 값으로 바꿔줌
data['genre'] = genre_labels
data['rating'] = rating_labels
#설명 변수 x확인하기
#rating과 genre는 원핫인코딩을 한 'rating_labels'랑 'genre_labels'로 바꿔줌
movies_columns = ['score', 'votes', 'budget', 'rating', 'genre', 'runtime']
fig=plt.figure(figsize=(16, 20))
ax = fig.gca()
data[movies_columns].hist(ax=ax)
plt.show()
로 바꾸면 된다.
허허..당연한 거를 가지고 3시간 넘게 고민했다.. 그래도 이걸로 배웠으니까 된거겠지 뭐
'인공지능' 카테고리의 다른 글
SettingWithCopyWarning: (0) | 2023.04.07 |
---|