Pandas DataFrame의 컬럼 이름 변경하기

Pandas DataFrame의 컬럼 이름 변경하기

Pandas
Pandas DataFrame의 컬럼 이름 변경하기
Author

gabriel yang

Published

August 19, 2024

Pandas에서 DataFrame의 컬럼 이름 변경하기

Pandas에서 DataFrame을 다루다 보면 컬럼 이름을 변경해야 하는 경우가 자주 발생합니다. 예를 들어, 데이터의 가독성을 높이거나 특정한 요구 사항에 맞추기 위해 컬럼 이름을 수정할 필요가 있습니다. 이번 포스팅에서는 Pandas에서 DataFrame의 컬럼 이름을 변경하는 다양한 방법을 정리합니다.

1. rename() 메서드 사용하기

Pandas에서 컬럼 이름을 변경할 때 가장 많이 사용되는 방법은 rename() 메서드를 활용하는 것입니다. 이 메서드는 특정 컬럼 이름만 선택적으로 변경할 수 있는 유연성을 제공합니다.

import pandas as pd

# 샘플 DataFrame 생성
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)
df
Name Age
0 Alice 25
1 Bob 30
2 Charlie 35

rename함수를 이용해서 NameAge컬럼의 이름을 변경합니다.

# 컬럼 이름 변경
df.rename(columns={'Name': 'Full Name', 'Age': 'Years'}, inplace=True)
df
Full Name Years
0 Alice 25
1 Bob 30
2 Charlie 35
  • columns 파라미터에 딕셔너리 형식으로 변경할 컬럼 이름을 지정합니다. 딕셔너리의 키는 기존 컬럼 이름이고, 값은 변경할 새로운 이름입니다.
  • inplace=True로 설정하면 원본 DataFrame이 직접 수정됩니다. 만약 inplace=False (기본값)로 설정하면, 수정된 DataFrame이 반환되며 원본은 그대로 유지됩니다.

2. 컬럼 이름 전체 변경하기

컬럼 이름을 하나씩 변경하는 것이 아니라, DataFrame의 모든 컬럼 이름을 한꺼번에 변경하고 싶을 때도 있습니다. 이 경우 컬럼 이름의 리스트를 직접 할당할 수 있습니다.

import pandas as pd

# 샘플 DataFrame 생성
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)
df
Name Age
0 Alice 25
1 Bob 30
2 Charlie 35

컬럼의 순서에 맞게 변경할 컬럼이름을 리스트로 전달합니다.

# 전체 컬럼 이름 변경
df.columns = ['Full Name', 'Years']
df
Full Name Years
0 Alice 25
1 Bob 30
2 Charlie 35
  • df.columns에 새로운 컬럼 이름의 리스트를 할당하면, 기존의 모든 컬럼 이름이 순서대로 대체됩니다.
  • 컬럼 이름의 개수는 DataFrame의 컬럼 수와 일치해야 합니다.

3. str 메서드를 활용한 컬럼 이름 변경

Pandas의 str 접근자를 사용하면 문자열 메서드를 활용해 컬럼 이름을 일괄적으로 변경할 수 있습니다. 예를 들어, 모든 컬럼 이름을 소문자로 바꾸거나, 특정 문자열을 추가하는 작업을 쉽게 수행할 수 있습니다.

import pandas as pd

# 샘플 DataFrame 생성
data = {'FirstName': ['Alice', 'Bob', 'Charlie'], 'LastName': ['Smith', 'Brown', 'Johnson']}
df = pd.DataFrame(data)
df
FirstName LastName
0 Alice Smith
1 Bob Brown
2 Charlie Johnson

모든 컬럼을 소문자로 변경하기 위해서 str메서드를 사용합니다.

# 컬럼 이름을 소문자로 변환
df.columns = df.columns.str.lower()

# 특정 문자열 추가 (예: 'col_' 추가)
df.columns = 'col_' + df.columns
df
col_firstname col_lastname
0 Alice Smith
1 Bob Brown
2 Charlie Johnson
  • df.columns.str.lower()는 모든 컬럼 이름을 소문자로 변환합니다.
  • 'col_' + df.columns는 모든 컬럼 이름 앞에 'col_' 문자열을 추가합니다.

4. add_prefix()add_suffix() 메서드 사용하기

컬럼 이름에 일괄적으로 접두사(prefix)나 접미사(suffix)를 추가하고 싶을 때는 add_prefix() 또는 add_suffix() 메서드를 사용할 수 있습니다.

import pandas as pd

# 샘플 DataFrame 생성
data = {'FirstName': ['Alice', 'Bob', 'Charlie'], 'LastName': ['Smith', 'Brown', 'Johnson']}
df = pd.DataFrame(data)
df
FirstName LastName
0 Alice Smith
1 Bob Brown
2 Charlie Johnson

add_prefixadd_surfix를 사용하여 접두사와 접미사를 붙이는 예시를 작성합니다.

# 접두사 추가
df_with_prefix = df.add_prefix('col_')

# 접미사 추가
df_with_suffix = df.add_suffix('_data')

display(df_with_prefix)
display(df_with_suffix)
col_FirstName col_LastName
0 Alice Smith
1 Bob Brown
2 Charlie Johnson
FirstName_data LastName_data
0 Alice Smith
1 Bob Brown
2 Charlie Johnson
  • add_prefix('col_')는 모든 컬럼 이름 앞에 'col_'을 추가합니다.
  • add_suffix('_data')는 모든 컬럼 이름 뒤에 '_data'를 추가합니다.

5. 컬럼 이름 변경 시 주의사항

컬럼 이름을 변경할 때 몇 가지 주의할 점이 있습니다

  • 중복된 이름: 새로운 컬럼 이름이 기존에 이미 존재하는 이름과 겹치지 않도록 주의해야 합니다. 중복된 컬럼 이름은 데이터 처리 중 혼란을 초래할 수 있습니다.
  • 대소문자 구분: Pandas는 기본적으로 컬럼 이름의 대소문자를 구분합니다. 따라서 ’Age’와 ’age’는 다른 컬럼으로 인식됩니다.

결론

Pandas에서 DataFrame의 컬럼 이름을 변경하는 방법은 여러 가지가 있으며, 상황에 따라 적합한 방법을 선택할 수 있습니다. rename() 메서드는 선택적인 변경에 유용하며, columns 속성을 직접 수정하면 전체 컬럼 이름을 한 번에 변경할 수 있습니다.

또한, 문자열 메서드와 add_prefix(), add_suffix() 메서드를 활용하면 보다 쉽게 일괄적인 변경 작업을 할 수 있습니다.