데이터프레임의 '인덱스/열 이름을 변경'하는 방법으로 두 가지가 있다.
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 (√)
## 2번. 변수 지정
df.rename(columns = {'A':'AA',
'C':'CC'},
index = {'ㄱ':'ㄱㄱ',
'ㄷ':'ㄷㄷ'},
inplace = True
)
df
# 원본이름을 바꾸고 싶은 경우
## 1번. inplace = True
## 2번. 변수 지정 (√)
df = df.rename(columns = {'A':'AA',
'C':'CC'},
index = {'ㄱ':'ㄱㄱ',
'ㄷ':'ㄷㄷ'},
)
df
'Develop > Pandas' 카테고리의 다른 글
[Pandas] 날짜 데이터프레임 업데이트 자동화 (0) | 2021.11.11 |
---|---|
[Pandas] 데이터프레임 열을 Datetime으로 변환하기 (0) | 2021.11.10 |
[Pandas] 데이터프레임 행 열 바꾸기 ; transpose (0) | 2021.11.05 |
[Pandas] 날짜 포맷 바꾸기 (2000-01-01 → 20000101) (0) | 2021.11.03 |
[Pandas] 대체공휴일 반영한 '영업일 데이터프레임' 만들기 (0) | 2021.10.14 |