본문으로 바로가기

 

 


 

데이터프레임의 '인덱스/열 이름을 변경'하는 방법으로 두 가지가 있다.

 

1. 전체변경 

df.index = ['after1', 'after2', 'after3']
df.columns = ['after1', 'after2', 'after3']

 

2. 선택변경 

df.rename(index={'before':'after'}, columns={'before':'after'})

 

전체 변경하는 경우, 인덱스/열에 있는 구성요소(element)의 개수를 정확하게 맞춰야 한다.

맞추지 않는 경우 'Length mismatch' 오류가 발생한다.

ValueError : Length mismatch: Expected axis has 3 elements, new values have 2 elements

 

다음 순서에 따라 데이터프레임의 '인덱스/열 이름을 변경'하는 방법을 알아볼 것이다.

1. 데이터프레임 생성

2. 전체변경

3. 선택변경 

3-1. 원본의 인덱스, 컬럼 이름을 변경하고 싶은 경우 (inplace 또는 변수지정)

 

1. 데이터프레임 생성

import pandas as pd

df = pd.DataFrame({'A' : [1, 2, 3],
                   'B' : [4, 5, 6],
                   'C' : [7, 8, 9]},
                  index = ['ㄱ', 'ㄴ', 'ㄷ'])

df

 

 

 

2. 전체 변경

df.index = ['ㄱㄱ', 'ㄴㄴ', 'ㄷㄷ']
df.columns = ['AA', 'BB', 'CC']
df

 

 

 

3. 선택 변경

# 1개 바꾸고 싶은 경우

df_new = df.rename(columns = {'A':'AA'},
                  index = {'ㄱ':'ㄱㄱ'}
                  )

df_new

 

# 여러개 바꾸고 싶은 경우 (dictionary 타입으로 추가)

df_new = df.rename(columns = {'A':'AA',
                             'C':'CC'},
                  index = {'ㄱ':'ㄱㄱ',
                          'ㄷ':'ㄷㄷ'}
                  )

df_new

 

 

 

3-1. 원본의 인덱스, 컬럼 이름을 변경하고 싶은 경우

데이터프레임 생성

 

1번. inplace = True

 

# 원본이름을 바꾸고 싶은 경우
## 1번. inplace = True (√)
## 2번. 변수 지정 

df.rename(columns = {'A':'AA',
                     'C':'CC'},
          index = {'ㄱ':'ㄱㄱ',
                   'ㄷ':'ㄷㄷ'},
          inplace = True
         )

df

 

2번. 변수 지정

# 원본이름을 바꾸고 싶은 경우
## 1번. inplace = True
## 2번. 변수 지정 (√)

df = df.rename(columns = {'A':'AA',
                          'C':'CC'},
               index = {'ㄱ':'ㄱㄱ',
                        'ㄷ':'ㄷㄷ'},
              )

df