-
카테고리
-
세부 분야
딥러닝 · 머신러닝
-
해결 여부
미해결
inplace=True와 변수 할당의 차이점
21.03.02 16:17 작성 조회수 162
0
3장 피마인디언 당뇨병 예측에서 0값을 평균값으로 바꿔주는 부분에서
책에는 mean_zero_features= diabetes_data[zero_features].mean()
diabetes_data[zero_features]=diabetes_data[zero_features].replace(0, mean_zero_features)처럼
변수를 할당해서 값이 대체되는데
diabetes_data[zero_features].replace(0, mean_zero_features, inplace=True)로
변수 할당 대신 inplace=True를 옵션으로 추가해서
코드를 변경하니 값이 대체되지 않는데 혹시 이유가 있을까요?
답변을 작성해보세요.
0
권 철민
지식공유자2021.03.02
안녕하십니까,
이건 정확히 저도 원인을 모르겠습니다.
pandas Dataframe에서 여러개의 feature들을 한꺼번에 replace(,,,, inplace=True)를 부여하면 아래와 같이 warning 이 발생하면서 제대로 적용이 안되는 것 같습니다.
A value is trying to be set on a copy of a slice from a DataFrame
아마도 replace할 mean_zero_features가 diabetes_data[zero_features]의 mean()값으로 서로 참조하는 객체가 같아서 적용이 안되는 것 같은데, 추측일 뿐입니다.
diabetes_data[zero_features].replace(0, mean_zero_features, inplace=True)로
답변 1