기존 데이터프레임 일부를 복사하거나 인덱싱 후 값을 수정할 때 종종 발생한다.
기존 데이터프레임을 가져와(복사) 다른 데이터프레임을 만들 때 원본을 수정할 지 복사본을 수정할 지 몰라서 발생하는 오류라고 한다.
두 가지 해결 방법이 있는데, 하나는 경고를 무시하는 것이고 하나는 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()
'Python > pd. Pandas' 카테고리의 다른 글
[Python] 데이터 재구조화(reshape) : pd.crosstab() 사용해 교차표(cross tabulation) (0) | 2021.10.12 |
---|---|
[Python] Pandas DataFrame 행,열 삭제 (0) | 2021.09.22 |