컴퓨터/Python

pandas 원본에 영향을 주는 함수/ 원본에 영향을 주지 않는 함수

풍경소리^^ 2025. 4. 29. 14:19

✅ 원본 객체에 영향을 주는 함수

이들은 기본적으로 inplace=True 옵션을 주면 원본을 수정합니다.

함수설명
df.drop(..., inplace=True) 행/열 삭제 (원본에서 삭제)
df.rename(..., inplace=True) 컬럼명 또는 인덱스명 변경
df.fillna(..., inplace=True) 결측값 채우기
df.replace(..., inplace=True) 특정 값 치환
df.sort_values(..., inplace=True) 값 기준 정렬
df.sort_index(..., inplace=True) 인덱스 기준 정렬
df.reset_index(..., inplace=True) 인덱스 리셋
df.set_index(..., inplace=True) 인덱스를 특정 열로 설정
df.drop_duplicates(..., inplace=True) 중복 제거

✅ 이 함수들은 기본적으로 inplace=False가 default이므로, inplace=True를 명시적으로 줘야 원본이 변경됩니다.


❌ 원본 객체에 영향을 주지 않는 함수

아래 함수들은 반환값이 새로운 객체이며, 원본은 변경되지 않습니다.

함수설명
df.copy() 완전한 복사본 반환
df.drop(...) 행/열 삭제 (새로운 객체 반환)
df.rename(...) 컬럼명 또는 인덱스명 변경 (새로운 객체 반환)
df.fillna(...) 결측값 채우기 (새 객체 반환)
df.replace(...) 특정 값 치환 (새 객체 반환)
df.sort_values(...) 정렬된 DataFrame 반환
df.sort_index(...) 정렬된 DataFrame 반환
df.reset_index(...) 인덱스 리셋 (새 객체 반환)
df.set_index(...) 인덱스 설정 (새 객체 반환)
df.drop_duplicates(...) 중복 제거된 새 객체 반환

⚠️ 주의할 점

  • inplace=True는 내부적으로도 가급적 사용을 피하라는 경고가 있으며, 추후 Pandas에서 사라질 수도 있습니다.
  • 안전하게 작업하려면 항상 df = df.some_operation() 패턴을 사용하는 것이 좋습니다.