본문 바로가기

Python/pd. Pandas

[Python] 판다스 데이터프레임(pandas dataframe) SettingWithCopyWarning 해결

기존 데이터프레임 일부를 복사하거나 인덱싱 후 값을 수정할 때 종종 발생한다.

기존 데이터프레임을 가져와(복사) 다른 데이터프레임을 만들 때 원본을 수정할 지 복사본을 수정할 지 몰라서 발생하는 오류라고 한다.

 

두 가지 해결 방법이 있는데, 하나는 경고를 무시하는 것이고 하나는 copy를 사용하는 것이다.


1. 경고 무시

pd.set_option을 사용한 경고문 제거

# SettingWithCopyError --> 오류 raise 로 코드 실행 X
pd.set_option('mode.chained_assignment', 'raise') 

# SettingWithCopyWarning --> 실행은 되지만 경고문 뜸
pd.set_option('mode.chained_assignment', 'warn') 

# error, warning 무시 --> 경고 끔
pd.set_option('mode.chained_assignment',  None) 

 

 

2. 기존 데이터프레임을 복사해 사용

만약 df1에서 df2를 가져와 사용하는 것이라면 copy()명령어로 분리를 해주어 오류가 나지 않도록 한다.

df2 = df1.copy()

 

 

 

 

 

 

 

 

 

 

 

출처 : https://ahnty0122.tistory.com/98