에러해결/PYTHON
SettingWithCopyWarning (경고 메세지 안뜨게 하기)
Zziii
2023. 7. 20. 22:36
728x90
반응형
사실 이건 에러는 아닌데..
아래와 같은 코드를 입력했는데..
df.drop_duplicates(subset='columns1', keep='first', inplace=True)
아래와 같이 경고 메세지가 뜸
<ipython-input-1-9e7c3d3159be>:10: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
이유는 Pandas에서 Dataframe을 slice할 때 view(참조) 형태와 copy(복사) 형태로 나눠서 처리한다. 이 구문은 slice된 view를 대상으로 처리되기 때문에, view의 데이터를 변경하게 되면 원래 Dataframe이 변경될 가능성이 있기 때문에 경고 메세지가 출력된다.
즉 copy를 하지 않고 원본의 데이터를 바꿔서 경고메세지가 출력되는것!
경고메세지를 출력하고 싶지 않다면 다음과 같이 코드 수정을 하면 된다.
df_copy = df.copy()
df_copy.drop_duplicates(subset='columns1', keep='first')
그런데 이와 같은 경우 말고도 경고 메세지가 뜨는 경우가 종종 있는데
경고 메세지를 안뜨게 하고 싶다면 다음과 같이 해주는게 좋다.
import warnings
warnings.filterwarnings('ignore')
728x90
반응형