DataFrame에서 컬럼명을 수정하는 방법은 몇 개가 존재한다.
아래와 같은 DataFrame 샘플이 존재한다고 할 때
import pandas as pd
df = pd.DataFrame( {'c1':[1, 2, 3]
,'c2':[3, 4, 5]
,'c3':[6, 7, 8]})
c1 c2 c3
0 1 3 6
1 2 4 7
2 3 5 8
□ 특정 컬럼명 수정
아래 세 가지 방법으로 컬럼명 수정이 가능하다.
df.rename( {'c1':'A1'}, axis='columns', inplace=True)
# 이때 inplace=False이면 원본 데이터(df) 값 자체는 변경하지 않는다. default는 False이다.
A1 c2 c3
0 1 3 6
1 2 4 7
2 3 5 8
df.rename( columns={'c1':'B1'}, inplace=True)
B1 c2 c3
0 1 3 6
1 2 4 7
2 3 5 8
df.rename( columns={df.columns[0]:'C1'}, inplace=True)
C1 c2 c3
0 1 3 6
1 2 4 7
2 3 5 8
df.columns.values[0] = 'D1'
D1 c2 c3
0 1 3 6
1 2 4 7
2 3 5 8
- inplace option
DataFrame에서 inplace option은 원본 데이터(source) 자체를 변경하는가, 하지 않는가를 지정한다.
inplace=False인 경우에는 원본 데이터 자체는 변경하지 않고 형상만 변경한다. 이때 해당 형상은 return 값을 통해서 받을 수 있다.
temp = df.rename( {'c1', 'A1'}, axis='columns', inplace=False)
의 경우 원본 데이터인 df의 첫 번째 컬럼명은 A1으로 변경되지 않는다.
반면 temp는 컬럼명이 A1으로 변경된 데이터를 가지게 된다.
같은 원리로
df.rename( {'c1', 'A1'}, axis='columns', inplace=True) 은
df = df.rename( {'c1', 'A1'}, axis='columns', inplace=False) 과 동일한 결과를 가진다.
□ 컬럼명 전체 변경
아래 방법으로 컬럼명 전체 수정이 가능하다.
df.rename( {'c1':'A1', 'c2':'A2', 'c3':'A3'}, axis='columns', inplace=True)
A1 A2 A3
0 1 3 6
1 2 4 7
2 3 5 8
df.rename( columns={'c1':'B1', 'c2':'B2', 'c3':'B3'}, inplace=True)
B1 B2 B3
0 1 3 6
1 2 4 7
2 3 5 8
df.columns = ['C1', 'C2', 'C3']
C1 C2 C3
0 1 3 6
1 2 4 7
2 3 5 8
'programming > Python' 카테고리의 다른 글
파이썬 패턴 (0) | 2024.06.12 |
---|---|
파일, 디렉토리 관리 (0) | 2024.06.12 |
DataFrame, indexing - loc, iloc (0) | 2020.09.05 |
visdom server port 변경 (0) | 2020.03.15 |
서식 지정, print format (0) | 2020.03.14 |