Pandas에서 컬럼 이름 바꾸는 방법
Updated on
Pandas로 데이터를 정리하거나 구성할 때, 컬럼 이름을 바꾸는 작업은 가장 자주 하는 작업 중 하나입니다. 명확하고 설명적인 컬럼 이름은 DataFrame의 가독성을 높이고, 이후 분석 과정의 효율도 크게 끌어올립니다.
이 2025년 업데이트 가이드에서는 Pandas에서 컬럼 이름을 바꾸는 주요 모든 방법을 모범 사례, 예제, 그리고 피해야 할 실수들과 함께 정리합니다.
Pandas DataFrame을 차트 코드를 직접 쓰지 않고 더 빠르게 탐색하고 시각화하고 싶다면?
PyGWalker는 어떤 DataFrame이든 Tableau 스타일의 인터랙티브 시각 탐색 UI로 바꿔 줍니다.
여기에서 사용해 보세요: https://github.com/Kanaries/pygwalker (opens in a new tab)
📌 Pandas에서 컬럼 이름을 바꾼다는 것은?
컬럼 이름을 바꾐다는 것은 DataFrame에서 하나 이상의 컬럼 레이블을 변경한다는 뜻입니다.
이 작업은 다음과 같은 경우에 유용합니다:
- 컬럼 이름이 불명확하거나 일관성이 없을 때
- 공백, 특수문자, 오타 등이 포함되어 있을 때
- 병합이나 모델링을 위해 표준화된 이름이 필요할 때
- 발표나 시각화를 위해 사람에게 더 친숙한 레이블이 필요할 때
Pandas는 이런 상황에 맞게 사용할 수 있는 여러 편리한 컬럼 이름 변경 방법을 제공합니다.
🔧 Pandas에서 컬럼 이름 바꾸는 법 (모든 방법 정리)
아래는 가장 자주 쓰이고, 추천되는 접근법들입니다.
✅ 1. rename()으로 단일 컬럼 이름 바꾸기
가장 안전하고 명시적인 방법입니다.
import pandas as pd
df = pd.DataFrame({
'Name': ['John', 'Alex', 'Peter'],
'Age': [25, 24, 28],
'Gender': ['Male', 'Male', 'Male']
})
df = df.rename(columns={'Age': 'Years'})
print(df)출력:
Name Years Gender
0 John 25 Male
1 Alex 24 Male
2 Peter 28 Male✅ 2. rename()으로 여러 컬럼 이름 한 번에 바꾸기
그냥 더 큰 딕셔너리를 넘기면 됩니다.
df = df.rename(columns={
'Age': 'Years',
'Gender': 'Sex'
})이 방식은 컬럼 순서가 의도치 않게 꼬이는 일을 막고, 인덱스도 그대로 보존합니다.
✅ 3. df.columns = [...]로 모든 컬럼 이름 한 번에 바꾸기
새 컬럼 이름을 모두 알고 있을 때 유용합니다.
df.columns = ['ID', 'Years', 'Dept']⚠️ 중요:
리스트 길이는 컬럼 개수와 반드시 같아야 합니다.
✅ 4. set_axis()로 컬럼 이름 바꾸기 (함수형 스타일)
inplace=True를 사용하지 않으면 새로운 DataFrame을 반환합니다.
df = df.set_axis(['A', 'Years', 'B'], axis=1)유연하지만, 단순한 이름 변경 용도로는 비교적 덜 사용됩니다.
✅ 5. 리스트 컴프리헨션으로 동적으로 컬럼 이름 바꾸기
대량 포맷팅 작업에 적합합니다:
df.columns = [col.replace('_', ' ').title() for col in df.columns]자동화된 정리에 특히 좋습니다:
- 소문자로 통일
- 공백 제거
- 접두어/접미어 추가
예시:
df.columns = [col.lower() for col in df.columns]
df.columns = [f"user_{col}" for col in df.columns]✅ 6. 컬럼 인덱스로 이름 바꾸기
컬럼 인덱스(위치)로 이름을 바꾸는 기능은 자주 쓰이지는 않지만, 지원됩니다:
df = df.rename(columns={2: 'Dept'})컬럼 이름을 알 수 없거나, 이름이 중복되었거나, 동적으로 생성된 경우에 유용할 수 있습니다.
🧠 컬럼 이름 변경 시 베스트 프랙티스
✔ 가독성을 위해 rename()을 우선 사용
rename()은 의도가 명확하고, 예상치 못한 동작을 줄여 줍니다.
✔ 모든 컬럼을 바꾸는 게 아니라면 df.columns 직접 수정은 자제
전체 리스트를 바꾸는 방식은 빠르지만, 개수 불일치 시 에러가 나므로 실수가 용납되지 않습니다.
✔ 파이프라인용 데이터에는 소문자 + 언더스코어 추천
df.columns = [c.lower().replace(' ', '_') for c in df.columns]✔ inplace=True는 피하는 것이 좋음
Pandas 공식 가이드에서는 inplace=True가 성능상 이점이 없다고 안내합니다.
⚡ 빠른 치트시트
df.rename(columns={'old': 'new'})
df.columns = ['A', 'B', 'C']
df = df.set_axis(['A', 'B', 'C'], axis=1)
df.columns = [col.lower() for col in df.columns]
df.rename(columns={2: 'new_name'})🏁 마무리
컬럼 이름 바꾸기는 분석을 준비하는 과정에서 단순하지만 필수적인 단계입니다. Pandas는 rename()을 이용한 명시적 변경부터, 리스트 컴프리헨션을 이용한 대량 포맷팅까지 여러 가지 방법을 제공합니다.
추천하는 사용 전략은 다음과 같습니다:
- 특정 컬럼만 바꿀 때는
rename()사용 - 모든 컬럼을 새로 지정할 때는
df.columns = [...]사용 - 동적인 변환이나 일괄 포맷팅에는 리스트 컴프리헨션 사용
- 인덱스 기반 이름 변경은 꼭 필요할 때만 사용
이 도구들을 적절히 활용하면 데이터를 항상 깔끔하고 일관성 있게 유지할 수 있습니다.
🔗 관련 튜토리얼
- Pandas에서 Dict를 DataFrame으로 변환하기
- Pandas에서 DataFrame에 컬럼 추가하기
- Pandas에서 DataFrame 정렬하기
- Pandas에서 빈 DataFrame 생성하기
❓ 자주 묻는 질문
1. Pandas에서 컬럼 이름은 어떻게 바꾸나요?
rename()을 사용합니다:
df.rename(columns={'old': 'new'})2. 인덱스로 컬럼 이름을 바꾸려면?
df.rename(columns={0: 'id'})3. 모든 컬럼 이름을 한 번에 바꾸려면?
df.columns = ['A', 'B', 'C']