Pandas DataFrame에서 여러 열(column) 헤더의 이름을 한 번에 변경하려면 rename() 메서드를 사용하고, 기존 이름과 새 이름을 매핑한 딕셔너리를 columns 매개변수에 전달하면 됩니다. 이 글에서는 단계별 예제와 함께 그 과정을 자세히 살펴보겠습니다.
1단계: DataFrame 생성
먼저 예제로 사용할 DataFrame을 만들어 보겠습니다.
import pandas as pd
dataFrame = pd.DataFrame({
"Car": ['BMW', 'Mustang', 'Tesla', 'Mustang', 'Mercedes', 'Tesla', 'Audi'],
"Cubic Capacity": [2000, 1800, 1500, 2500, 2200, 3000, 2000],
"Reg Price": [7000, 1500, 5000, 8000, 9000, 6000, 1500],
"Units Sold": [200, 120, 150, 120, 210, 250, 220]
})
2단계: 열 이름 매핑 딕셔너리 생성
다음으로, 변경할 열 이름 정보를 담은 딕셔너리를 만듭니다. 키(key)는 기존 열 이름, 값(value)은 새로운 열 이름으로 지정합니다.
dictionary = {
'Car': 'Car Name',
'Cubic Capacity': 'CC',
'Reg Price': 'Registration Price',
'Units Sold': 'Units Purchased'
}
3단계: rename() 메서드 적용
rename() 메서드에 앞서 만든 딕셔너리를 columns 인자로 전달합니다. inplace=True 옵션을 설정하면 별도의 변수에 재할당하지 않고도 원본 DataFrame이 직접 수정됩니다.
dataFrame.rename(columns=dictionary, inplace=True)
전체 예제 코드
지금까지의 내용을 하나로 합친 전체 코드는 다음과 같습니다.
import pandas as pd
# DataFrame 생성
dataFrame = pd.DataFrame({
"Car": ['BMW', 'Mustang', 'Tesla', 'Mustang', 'Mercedes', 'Tesla', 'Audi'],
"Cubic Capacity": [2000, 1800, 1500, 2500, 2200, 3000, 2000],
"Reg Price": [7000, 1500, 5000, 8000, 9000, 6000, 1500],
"Units Sold": [200, 120, 150, 120, 210, 250, 220]
})
print("DataFrame ...\n", dataFrame)
# 열 이름을 변경하기 위한 딕셔너리 생성
# 키는 기존 이름, 값은 새 이름
dictionary = {
'Car': 'Car Name',
'Cubic Capacity': 'CC',
'Reg Price': 'Registration Price',
'Units Sold': 'Units Purchased'
}
# rename() 메서드에 딕셔너리를 columns로 지정
dataFrame.rename(columns=dictionary, inplace=True)
print("\nUpdated DataFrame ...\n", dataFrame)
실행 결과
위 코드를 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.
DataFrame ...
Car Cubic Capacity Reg Price Units Sold
0 BMW 2000 7000 200
1 Mustang 1800 1500 120
2 Tesla 1500 5000 150
3 Mustang 2500 8000 120
4 Mercedes 2200 9000 210
5 Tesla 3000 6000 250
6 Audi 2000 1500 220
Updated DataFrame ...
Car Name CC Registration Price Units Purchased
0 BMW 2000 7000 200
1 Mustang 1800 1500 120
2 Tesla 1500 5000 150
3 Mustang 2500 8000 120
4 Mercedes 2200 9000 210
5 Tesla 3000 6000 250
6 Audi 2000 1500 220
추가 팁
inplace=True대신dataFrame = dataFrame.rename(columns=dictionary)처럼 반환값을 새 변수에 할당하는 방식으로도 열 이름을 변경할 수 있습니다.- 딕셔너리에 포함되지 않은 열 이름은 그대로 유지되므로, 필요한 열만 선택적으로 변경할 수 있습니다.
- Pandas 최신 버전(2.x)에서는
inplace=True사용 시 동작 변경 관련 경고가 발생할 수 있으므로, 가능하면 반환값을 할당하는 방식을 사용하는 것이 좋습니다.