Skip to content

Pandas에서 컬럼 이름 바꾸는 방법

Updated on

Pandas로 데이터를 정리하거나 구성할 때, 컬럼 이름을 바꾸는 작업은 가장 자주 하는 작업 중 하나입니다. 명확하고 설명적인 컬럼 이름은 DataFrame의 가독성을 높이고, 이후 분석 과정의 효율도 크게 끌어올립니다.

이 2025년 업데이트 가이드에서는 Pandas에서 컬럼 이름을 바꾸는 주요 모든 방법을 모범 사례, 예제, 그리고 피해야 할 실수들과 함께 정리합니다.

Pandas DataFrame을 차트 코드를 직접 쓰지 않고 더 빠르게 탐색하고 시각화하고 싶다면?

PyGWalker는 어떤 DataFrame이든 Tableau 스타일의 인터랙티브 시각 탐색 UI로 바꿔 줍니다.
여기에서 사용해 보세요: https://github.com/Kanaries/pygwalker (opens in a new tab)

PyGWalker for Data visualization (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 = [...] 사용
  • 동적인 변환이나 일괄 포맷팅에는 리스트 컴프리헨션 사용
  • 인덱스 기반 이름 변경은 꼭 필요할 때만 사용

이 도구들을 적절히 활용하면 데이터를 항상 깔끔하고 일관성 있게 유지할 수 있습니다.


🔗 관련 튜토리얼


❓ 자주 묻는 질문

1. Pandas에서 컬럼 이름은 어떻게 바꾸나요?

rename()을 사용합니다:

df.rename(columns={'old': 'new'})

2. 인덱스로 컬럼 이름을 바꾸려면?

df.rename(columns={0: 'id'})

3. 모든 컬럼 이름을 한 번에 바꾸려면?

df.columns = ['A', 'B', 'C']