파이썬

[python] Pandas에서 열 이름 바꾸기

zooheon 2022. 8. 28. 20:28
반응형

Pandas DataFrame의 열 레이블을 다음에서 변경하고 싶습니다.

['$a', '$b', '$c', '$d', '$e']

에게

['a', 'b', 'c', 'd', 'e']

 

특정 열 이름 바꾸기

함수를 사용하고 df.rename()이름을 바꿀 열을 참조하십시오. 모든 열의 이름을 바꿀 필요는 없습니다.

df = df.rename(columns={'oldName1': 'newName1', 'oldName2': 'newName2'})
# Or rename the existing DataFrame (rather than creating a copy) 
df.rename(columns={'oldName1': 'newName1', 'oldName2': 'newName2'}, inplace=True)

최소 코드 예

df = pd.DataFrame('x', index=range(3), columns=list('abcde'))
df

   a  b  c  d  e
0  x  x  x  x  x
1  x  x  x  x  x
2  x  x  x  x  x

다음 메서드는 모두 작동하고 동일한 출력을 생성합니다.

df2 = df.rename({'a': 'X', 'b': 'Y'}, axis=1)  # new method
df2 = df.rename({'a': 'X', 'b': 'Y'}, axis='columns')
df2 = df.rename(columns={'a': 'X', 'b': 'Y'})  # old method  

df2

   X  Y  c  d  e
0  x  x  x  x  x
1  x  x  x  x  x
2  x  x  x  x  x

수정 사항이 제자리에 있지 않으므로 결과를 다시 할당해야 합니다. 또는 다음을 지정합니다 inplace=True.

df.rename({'a': 'X', 'b': 'Y'}, axis=1, inplace=True)
df

   X  Y  c  d  e
0  x  x  x  x  x
1  x  x  x  x  x
2  x  x  x  x  x
 

errors='raise'v0.25부터 이름을 바꿀 잘못된 열이 지정된 경우 오류가 발생하도록 지정할 수도 있습니다 . v0.25 rename()문서 를 참조하십시오 .


열 헤더 재할당

(사본을 반환하려면) df.set_axis()와 함께 사용하십시오 .axis=1inplace=False

df2 = df.set_axis(['V', 'W', 'X', 'Y', 'Z'], axis=1, inplace=False)
df2

   V  W  X  Y  Z
0  x  x  x  x  x
1  x  x  x  x  x
2  x  x  x  x  x

이것은 복사본을 반환하지만 설정하여 DataFrame을 제자리에서 수정할 수 있습니다 inplace=True(버전 <=0.24의 기본 동작이지만 향후 변경될 수 있음).

헤더를 직접 할당할 수도 있습니다.

df.columns = ['V', 'W', 'X', 'Y', 'Z']
df

   V  W  X  Y  Z
0  x  x  x  x  x
1  x  x  x  x  x
2  x  x  x  x  x

 

.columns속성 에 할당하기만 하면 됩니다 .

>>> df = pd.DataFrame({'$a':[1,2], '$b': [10,20]})
>>> df
   $a  $b
0   1  10
1   2  20

>>> df.columns = ['a', 'b']
>>> df
   a   b
0  1  10
1  2  20

 

rename메서드는 함수 를 취할 수 있습니다 . 예를 들면 다음과 같습니다.

In [11]: df.columns
Out[11]: Index([u'$a', u'$b', u'$c', u'$d', u'$e'], dtype=object)

In [12]: df.rename(columns=lambda x: x[1:], inplace=True)

In [13]: df.columns
Out[13]: Index([u'a', u'b', u'c', u'd', u'e'], dtype=object)

 

반응형