Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python - Pandas DataFrame에서 열 이름 및 행 인덱스 변경

<시간/>

Pandas는 파이썬 표준 라이브러리에서 사용할 수 없는 데이터 분석을 위한 많은 기능을 제공하는 파이썬 라이브러리입니다. 그러한 기능 중 하나는 데이터 프레임을 사용하는 것입니다. 열과 행을 나타내는 직사각형 그리드입니다. 데이터 프레임을 생성하는 동안 열의 이름을 결정하고 후속 데이터 조작에서 참조합니다. 그러나 데이터 프레임이 생성된 후 열의 이름을 변경해야 하는 상황이 있을 수 있습니다. 이 기사에서는 이를 달성하는 방법을 살펴보겠습니다.

rename() 사용

이 방법을 사용하여 열과 행 인덱스를 모두 변경할 수 있으므로 가장 선호되는 방법입니다. 키-값 쌍의 사전으로 이전 값과 새 값을 이 메서드에 전달하고 데이터 프레임을 새 이름으로 저장합니다.

예시

import pandas as pd

df = pd.DataFrame({
   'ColumnA': [23, 92, 32],
   'ColumnB': [54, 76, 43],
   'ColumnC': [16, 45, 10]
},
index=['10-20', '20-30', '30-40'])

df_renamed = df.rename(columns={'ColumnA': 'Col1', 'ColumnB': 'Col2', 'ColumnC': 'Col3'},
index={'10-20': '1', '20-30': '2', '30-40': '3'})
print(df)
print("\n",df_renamed)

출력

위의 코드를 실행하면 다음과 같은 결과가 나타납니다.

            ColumnA    ColumnB    ColumnC
10-20            23         54         16
20-30            92         76         45
30-40            32         43         10

           Col1      Col2        Col3
1          23         54          16
2          92         76          45
3          32         43          10

df.columns 사용

df.columns에 새 열 이름을 직접 할당할 수 있습니다. 데이터 프레임을 다시 사용하면 새 열 이름이 참조됩니다.

예시

import pandas as pd

df = pd.DataFrame({
   'ColumnA': [23, 92, 32],
   'ColumnB': [54, 76, 43],
   'ColumnC': [16, 45, 10]
},
index=['10-20', '20-30', '30-40'])

df.columns=["Length","Breadth","Depth"]
print(df)

출력

위의 코드를 실행하면 다음과 같은 결과가 나타납니다.

          Length      Breadth Depth
10-20 23 54 16
20-30 92 76 45
30-40 32 43 10

접두사 추가

Pandas 데이터 프레임은 열 이름에 접두사와 접미사를 추가하는 방법을 제공합니다. 이 방법을 사용하여 각 열 이름에 추가되는 원하는 접두사를 추가하기만 하면 됩니다.

예시

import pandas as pd

df = pd.DataFrame({
   'ColA': [23, 92, 32],
   'ColB': [54, 76, 43],
   'ColC': [16, 45, 10]
},
index=['10-20', '20-30', '30-40'])

print(df.add_prefix('Jan-'))

출력

위의 코드를 실행하면 다음과 같은 결과가 나타납니다.

         Jan-ColA    Jan-ColB    Jan-ColC
10-20          23          54          16
20-30          92          76          45
30-40          32          43          10