pandas의 데이터 타입인 dataframe의 경우
값을 복사할 때, 원본 dataframe의 값은 그대로 놔두고 싶은데 값을 바꾸면 원본 값이 바뀌는 경우가 발생한다.
이 경우
import pandas as pd
origin = pd.DataFrame([['a', 1], ['b', 2], ['c', 3]], columns = ['Alpha', 'Num'])
origin
Alpha Num
0 a 1
1 b 2
2 c 3
copy = origin
# 이렇게 origin이라는 Dataframe을 copy안에 값을 넣고
copy.iloc[0,0] = "change"
# copy.loc[0,"Alpha"] = "change" # 위 코드와 같은 결과# 이 개념이 궁금하다면 Dataframe의 iloc/loc을 검색
# 이런식으로 값을 바꾸면 copy의 값이 변하지만 origin의 값도 바껴있음을 확인할 수 있다.
copy
Alpha Num
0 change 1
1 b 2
2 c 3
origin
Alpha Num
0 change 1
1 b 2
2 c 3
# 이런 경우를 방지하기 위해
# copy = origin.copy()를 설정해주면 copy 값을 바꾸더라도 origin의 값은 변하지 않는다!
즉 ! 결론
pandas Dataframe의 값을 복사할 경우
copy = origin.copy() #를 사용하자!