컴퓨터/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() 패턴을 사용하는 것이 좋습니다.