SettingWithCopyWarning

sujineeda·2021년 6월 30일
0

🖐Python

목록 보기
3/3

DataFrame 은 연쇄적인 연산과 처리를 허용한다.
SQL에서 테이블을 select한 결과가 다시 테이블이 되어 select할 수 있는 것과 유사하다.

SettingWithCopyWarning 나타나는 이유는 메모리 고갈

DataFrame를 표현할 때 메모리를 점유.
등장하는 모든 DataFrame에 메모리를 할당하려 하면 메모리 고갈됨
따라서 원천 dataframe 을 생성할 때만 메모리를 할당하고 이로부터 파생되는 dataframe은 원천 dataframe을 이미 적재된 메모리에 접근케 하여 메모리 절약
원천 dataframe 의 부분집합에 view 를 형성한다고 보면 됨

파생된 dataframe에 열을 하나 추가하면 어떻게 되나

원천 dataframe의 부분집합으로 이뤄진 view에 변경을 가하는 셈이다
따라서 파생 dataframe에 수정을 가하는것을 권장하지 않는다

  • copy()메서드를 통해 파생 dataframe에 독립적인 메모리를 부여한 뒤 여기에 수정을 가하는 것이 권장 방식

dataframe 값 변경

  • 조건 행 필터링 통해 값 변경
# np.where((condition1) & (condition2), True일때 value, False일 때 value)
df['column1'] = np.where(condition, 0, df['column1'])
# 조건에 맞는 값일 때, 0으로 변경, 아니면 그대로 둠 


profile
AD+AI Ph.D course

0개의 댓글