Odds and Ends

[Pandas] SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame 오류 해결방법 본문

오류 해결

[Pandas] SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame 오류 해결방법

Squidward 2022. 5. 22. 01:28

 

SettingWithCopyWarning & SettingWithCopyError

: Pandas에서 원본 DataFrame을 고치려고(복사 혹은 인덱싱) 할 때 발생하는 오류

 

csv 파일 인덱싱해서 수정 중 발생한 오류

 

방법은

1) 명시적으로 DataFrame을 복사해서 쓰는 경우 - copy() 함수 사용
2) 경고 무시 메시지 작성 - 되도록 안쓰는 것이 좋음

3) concat() 함수 사용

 

경고 메시지는 pandas의 concat()을 사용하라는 것 같은데 잘안돼서

아래처럼 경고를 무시하는 코드를 작성했다.

 

# 오류(SettingWithCopyError 발생)
pd.set_option('mode.chained_assignment', 'raise') # SettingWithCopyError

# 경고(SettingWithCopyWarning 발생, 기본 값입니다)
pd.set_option('mode.chained_assignment', 'warn') # SettingWithCopyWarning

# 무시
pd.set_option('mode.chained_assignment',  None) # <== 경고 끔

--> 무시코드 

 

pycharm 코드 작성 화면

 

728x90