Python/Pandas

[Pandas] inplace 옵션

죵욜이 2024. 12. 15. 22:56

inplace 란?

 

Pandas 의 DataFrame 나 Series 객체를 조작할때, 원본 데이터를 바로 수정할지 여부를 결정하는 옵션이다

 

기본적으로 판다스의 함수들은 원본 데이터를 변경하지 않고 새로운 객체를 반환 한다.

 

 inplace=True 를 설정하면 원본 데이터가 직접 변경된다.


사용예시

 

(1)  inplace=False (기본값)

  • 원본 데이터는 변경되지 않으며, 새로운 데이터프레임이 반환된다.
# 데이터프레임 복사
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})

# drop으로 열 삭제 (inplace=False, 기본값)
new_df = df.drop('A', axis=1)  # A 열을 삭제한 새로운 데이터프레임 반환
print(new_df)  # A 열이 삭제됨
print(df)      # 원본 데이터는 유지됨

 

 

(2)  inplace=True 

  • 원본 데이터프레임이 직접 수정된다.
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})

# inplace=True로 열 삭제
df.drop('A', axis=1, inplace=True)  # 원본 데이터프레임에서 A 열 삭제
print(df)  # A 열이 삭제된 상태

 inplace  사용시 주의점

 

(1)  inplace=True  는 반환값이  None  입니다. 결과를 변수에 저장하려고 하면  None  이 저장됩니다.

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})

# 잘못된 사용 예시
new_df = df.drop('A', axis=1, inplace=True)
print(new_df)  # None

 

 

(2) 원본 데이터가 변경되므로 복구가 어렵다.

  • 데이터를 안전하게 유지하려면 사본을 만든 뒤 작업하는 것이 좋습니다.
# 원본 보존을 위해 복사
df_copy = df.copy()

 inplace  를 사용하는 주요 함수