A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,col_indexer] = value instead
다음과 같은 경고가 떴다. 처음에는 찾아봐도 무슨 말인지 모르겠어서 한참을 고민했다.
이 오류는 파생 dataframe에 수정이 가해져서 발생하는 오류라고 한다. 생각해보니까 data가 df의 파생 dataframe이고, 지금 genre를 원핫인코딩한 값으로 바꾸니까 파생 dataframe이 수정되는게 맞았다... ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
이런 경우 원본 dataframe을 완전히 복사하여 독립적인 dataframe을 만드는 것이 안전하다고 한다.
https://devpouch.tistory.com/153
그래서 그냥 data를 완전 복제 하기로 했다. ^~^
완전 복제와 얕은 복제가 뭐지? 할 수 있는데, 생각해보니 자바에서 배웠더라고
a = b 가 얕은 복제이고
a= b.copy() 이러면 완전 복제이다
#data = df.dropna(subset=['rating', 'score', 'votes', 'budget', 'gross', 'runtime'])
data = df.dropna(subset=['rating', 'score', 'votes', 'budget', 'gross', 'runtime']).copy()
주석처리가 원래 코드이고, 아래가 바꾼 코드이다.
오류가 해결 되었다 >~<
'인공지능' 카테고리의 다른 글
KeyError: "[....] not in index" (0) | 2023.04.06 |
---|