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() 메서드를 활용하면 보다 쉽게 일괄적인 변경 작업을 할 수 있습니다.

<h3>카테고리 다른 글</h3>
Date Title Author
Jan 1, 3000 전체 카테고리 gabriel yang
Oct 3, 2024 Pandas에서 Column 추가 및 삭제하는 방법 gabriel yang
Oct 3, 2024 Pandas 데이터프레임 mongodb에 저장하기 gabriel yang
Sep 21, 2024 Pandas에서 결측치(NaN) 처리하기 gabriel yang
Sep 11, 2024 Pandas SQL 쿼리 이용하기 gabriel yang
Aug 29, 2024 Pandas에서 데이터 형식 변경하기 gabriel yang
Aug 29, 2024 Pandas에서 데이터를 정렬하는 방법 gabriel yang
Aug 29, 2024 Pandas에서 인덱싱 및 슬라이싱하는 방법 gabriel yang
Aug 27, 2024 Pandas SQL 데이터베이스 읽어오기 gabriel yang
Aug 26, 2024 Pandas groupby 사용방법 gabriel yang
Aug 26, 2024 Pandas에서 두 개의 데이터프레임을 연결하기 gabriel yang
Aug 24, 2024 Pandas에서 melt를 사용해야 하는 데이터 유형과 사용 방법 gabriel yang
Aug 24, 2024 Pandas에서 pivot_table 사용하기 gabriel yang
Aug 24, 2024 Pandas에서 reset_index를 사용해야 하는 이유 gabriel yang
Aug 22, 2024 Pandas Excel과 CSV 파일을 읽어오는 방법 gabriel yang
Aug 17, 2024 Pandas SettingWithCopyWarning 문제 해결 gabriel yang
Nov 30, 2023 Dataframe을 Dict로 생성 및 변환 gabriel yang
Nov 29, 2023 python datetime 사용법 정리 gabriel yang
Sep 14, 2023 Pandas 중복 데이터 제거하기 gabriel yang
No matching items
Back to BLOG LIST