반응형
def 를 통해서 함수를 정의하고, 이 함수에 객체를 Input 값 으로 넣을 경우 주의할 점이 한 가지 있다.
바로, 사용자 정의 함수에서 입력 받은 객체에 대해서 직접 조작을 한다면, 굳이 return으로 변경내역을 전달해주지 않아도 원본에 적용이 된다는 점이다.
따라서 객체의 원본을 보존함과 동시에 함수를 적용한 객체를 각각 갖고자 한다면, 함수 내외부적으로 복사본을 만들어 적용시켜야 한다.
# 원본 자체가 변경 되는 경우
def change_df(df_org) :
df_org['col1'] = df_org['col1'] + 1
return df_org
# 원본과 결과를 각각 보존하고자 하는 경우
def change_df2(df_org) :
df = df_org.copy()
df['col1'] = df['col1'] + 1
return df
끄읏.
출처 : https://stackoverflow.com/questions/31614011/dataframe-modified-inside-a-function
반응형
'Development > Python' 카테고리의 다른 글
[Python] Pytorch 설치 && 설치 후 GPU Test (1) | 2021.10.13 |
---|---|
[Python] Pandas Dataframe 내 정규표현식 반영 문자열 추출 (0) | 2021.10.07 |
Pandas Merge시 행 증가하는 문제 원인 및 해결 (0) | 2021.10.01 |
[Python] Numa Node 0 에러 메세지 해결 (0) | 2021.09.30 |
[Python] 오늘 날짜, 영업일 계산(Business day, Working day), 두 날짜 사이의 리스트, 달의 마지막 날 출력하기 (2) | 2021.09.30 |
댓글