Pandas는 파이썬 표준 라이브러리에서 제공하지 않는 다양한 데이터 분석 기능을 갖춘 파이썬 라이브러리입니다. 그중 대표적인 기능이 바로 데이터프레임(DataFrame)입니다. 데이터프레임은 행과 열로 구성된 사각형 격자 형태의 자료구조로, 데이터 생성 시 열 이름을 정하고 이후 데이터 조작 과정에서 해당 이름을 참조하게 됩니다.
그런데 실무에서는 데이터프레임을 이미 만든 후에 열 이름을 변경해야 하는 상황이 종종 발생합니다. 이 글에서는 Pandas DataFrame의 열 이름과 행 인덱스를 변경하는 여러 가지 방법을 예제와 함께 살펴보겠습니다.
1. rename() 메서드 사용하기
가장 널리 권장되는 방법은 rename() 메서드입니다. 이 메서드를 사용하면 열 이름과 행 인덱스를 모두 변경할 수 있습니다. 기존 값과 새 값을 키-값 쌍으로 이루어진 딕셔너리 형태로 전달하며, 결과를 새 변수에 저장하여 사용합니다.
예제
import pandas as pd
df = pd.DataFrame({
'ColumnA': [23, 92, 32],
'ColumnB': [54, 76, 43],
'ColumnC': [16, 45, 10]
},
index=['10-20', '20-30', '30-40'])
df_renamed = df.rename(columns={'ColumnA': 'Col1', 'ColumnB': 'Col2', 'ColumnC': 'Col3'},
index={'10-20': '1', '20-30': '2', '30-40': '3'})
print(df)
print("\n",df_renamed)실행 결과
ColumnA ColumnB ColumnC
10-20 23 54 16
20-30 92 76 45
30-40 32 43 10
Col1 Col2 Col3
1 23 54 16
2 92 76 45
3 32 43 10위 코드에서는 columns 매개변수로 세 개의 열 이름을, index 매개변수로 세 개의 행 인덱스를 동시에 변경했습니다. 원본 데이터프레임은 그대로 유지되고 변경된 결과만 새 객체에 담기므로 안전하게 사용할 수 있습니다.
2. df.columns에 직접 할당하기
df.columns 속성에 새로운 열 이름 목록을 직접 할당하는 방법도 있습니다. 열 전체를 한 번에 교체할 때 유용하며, 이후 데이터프레임을 사용할 때부터는 새로운 열 이름이 적용됩니다.
예제
import pandas as pd
df = pd.DataFrame({
'ColumnA': [23, 92, 32],
'ColumnB': [54, 76, 43],
'ColumnC': [16, 45, 10]
},
index=['10-20', '20-30', '30-40'])
df.columns=["Length","Breadth","Depth"]
print(df)실행 결과
Length Breadth Depth 10-20 23 54 16 20-30 92 76 45 30-40 32 43 10
주의할 점은 할당하는 리스트의 요소 개수가 기존 열의 개수와 반드시 일치해야 한다는 것입니다. 개수가 맞지 않으면 오류가 발생합니다.
3. 접두사(Prefix) 추가하기
Pandas 데이터프레임은 열 이름에 접두사(prefix)나 접미사(suffix)를 붙일 수 있는 메서드를 제공합니다. add_prefix() 메서드를 사용하면 지정한 문자열이 모든 열 이름 앞에 자동으로 추가됩니다.
예제
import pandas as pd
df = pd.DataFrame({
'ColA': [23, 92, 32],
'ColB': [54, 76, 43],
'ColC': [16, 45, 10]
},
index=['10-20', '20-30', '30-40'])
print(df.add_prefix('Jan-'))실행 결과
Jan-ColA Jan-ColB Jan-ColC 10-20 23 54 16 20-30 92 76 45 30-40 32 43 10
반대로 열 이름 뒤에 문자열을 붙이고 싶다면 add_suffix() 메서드를 사용하면 됩니다. 월별 데이터 구분이나 컬럼 출처를 표시할 때 특히 유용합니다.
마무리
지금까지 Pandas DataFrame에서 열 이름과 행 인덱스를 변경하는 세 가지 방법을 살펴보았습니다. 일부 이름만 선택적으로 바꿀 때는 rename(), 전체 열 이름을 한 번에 교체할 때는 df.columns 할당, 규칙적으로 접두사·접미사를 붙일 때는 add_prefix()/add_suffix()를 활용하면 됩니다. 상황에 맞는 방법을 선택하면 데이터 전처리 작업을 더욱 효율적으로 수행할 수 있습니다.