Pandas에서는 rename() 함수를 사용하지 않고도 열의 인덱스(위치)만으로 열 이름을 간단하게 변경할 수 있습니다. 이 방법은 columns.values가 반환하는 배열에 직접 접근하여, 원하는 위치의 열 이름을 새로운 값으로 할당하는 방식으로 동작합니다.
먼저 필요한 라이브러리를 임포트합니다.
import pandas as pd
3개의 열(Car, Reg_Price, Units)을 가진 DataFrame을 생성해 보겠습니다.
dataFrame = pd.DataFrame(
{
"Car": ['BMW', 'Lexus', 'Tesla', 'Mustang', 'Mercedes', 'Jaguar'],
"Reg_Price": [7000, 1500, 5000, 8000, 9000, 6000],
"Units": [90, 120, 100, 150, 200, 130]
}
)
이제 columns.values 뒤에 대괄호를 붙여 변경하고자 하는 열의 인덱스를 지정하면 해당 열의 이름이 새로운 값으로 바뀝니다. 인덱스는 0부터 시작한다는 점에 유의하세요.
dataFrame.columns.values[0] = "Car Names"
dataFrame.columns.values[1] = "Registration Cost"
dataFrame.columns.values[2] = "Units_Sold"
전체 예제 코드
다음은 위 과정을 하나로 정리한 전체 코드입니다.
import pandas as pd
# DataFrame 생성
dataFrame = pd.DataFrame(
{
"Car": ['BMW', 'Lexus', 'Tesla', 'Mustang', 'Mercedes', 'Jaguar'],
"Reg_Price": [7000, 1500, 5000, 8000, 9000, 6000],
"Units": [90, 120, 100, 150, 200, 130]
}
)
print("DataFrame ...\n", dataFrame)
# 열 이름 변경
dataFrame.columns.values[0] = "Car Names"
dataFrame.columns.values[1] = "Registration Cost"
dataFrame.columns.values[2] = "Units_Sold"
print("\n새로운 열 이름이 적용된 DataFrame...\n", dataFrame)
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
DataFrame ...
Car Reg_Price Units
0 BMW 7000 90
1 Lexus 1500 120
2 Tesla 5000 100
3 Mustang 8000 150
4 Mercedes 9000 200
5 Jaguar 6000 130
새로운 열 이름이 적용된 DataFrame...
Car Names Registration Cost Units_Sold
0 BMW 7000 90
1 Lexus 1500 120
2 Tesla 5000 100
3 Mustang 8000 150
4 Mercedes 9000 200
5 Jaguar 6000 130
참고 사항
columns.values는 열 이름을 담고 있는 NumPy 배열을 반환하기 때문에, 특정 인덱스의 값을 직접 수정하는 방식으로 열 이름이 변경됩니다. 다만 최신 버전의 pandas에서는 이 방식이 의도대로 반영되지 않을 수 있으므로, 여러 열의 이름을 한 번에 변경할 때는 아래처럼 리스트 전체를 새로 할당하는 방법이 더 안정적입니다.
# 모든 열 이름을 한 번에 변경
dataFrame.columns = ["Car Names", "Registration Cost", "Units_Sold"]