인프런 커뮤니티 질문&답변

밍미님의 프로필 이미지
밍미

작성한 질문수

Pandas 팬더스 데이터분석 기초 실습

NaN 찾아서 다른 값으로 변경하기

선생님과 학생 나이 변경하는 부분 질문입니다.

해결된 질문

작성

·

148

0

tmp에 df를 넣어주는데, 

tmp = df
tmp["age"] = tmp["age"].fillna(0)
tmp

tmp가 새로이 생기는 것이고 tmp의 nan 값에만 0이 채워지는 것이 아니라,

df도 변경되더라고요. 

pandas에서

tmp = df는 tmp가 변경되면, df도 변경되는 원리인가요? 

tmp를 쓴다는 자체가 임시로 tmp에 저장하고, tmp만 변경하여

원래값은 보호해 두었다가, 후에 원래값은 그대로 이용하려고 쓰는 것으로 알고 있어서 혼란스럽니다.

답변 1

1

파이썬 문법을 보시면 깊은 복사와 얕은 복사 부분이 있습니다.

리스트는 값을 복사(얕은 복사)해서 사용하셔야 합니다.

tmp=df 는 동일한 지점의 주소를 가리키는 변수들입니다.

하지만 tmp=df[:] 하시게 되면 얕은 복사로 리스트의 값을 단순히  복사로 이루어 집니다. 같은 주소를 가지지 않습니다.

밍미님의 프로필 이미지
밍미

작성한 질문수

질문하기