현재 선택된 답변에는 rename_axis
색인 및 열 수준의 이름을 바꾸는 데 사용할 수있는 방법이 언급되어 있지 않습니다 .
팬더는 지수의 이름을 바꾸는 데 약간의 문제가 있습니다. rename_axis
색인 레벨 이름을 변경하는 데 사용할 수 있는 새로운 DataFrame 메소드도 있습니다.
DataFrame을 살펴 봅시다
df = pd.DataFrame({'age':[30, 2, 12],
'color':['blue', 'green', 'red'],
'food':['Steak', 'Lamb', 'Mango'],
'height':[165, 70, 120],
'score':[4.6, 8.3, 9.0],
'state':['NY', 'TX', 'FL']},
index = ['Jane', 'Nick', 'Aaron'])
이 DataFrame에는 각 행 및 열 인덱스마다 하나의 수준이 있습니다. 행 및 열 색인 모두 이름이 없습니다. 행 인덱스 레벨 이름을 'names'로 변경하십시오.
df.rename_axis('names')
이 rename_axis
메소드에는 axis
매개 변수 를 변경하여 열 레벨 이름을 변경하는 기능도 있습니다.
df.rename_axis('names').rename_axis('attributes', axis='columns')
일부 열을 사용하여 색인을 설정하면 열 이름이 새 색인 레벨 이름이됩니다. 원래의 DataFrame에 인덱스 레벨을 추가합시다 :
df1 = df.set_index(['state', 'color'], append=True)
df1
원래 색인의 이름이 없는지 확인하십시오. 우리는 여전히 사용할 수 rename_axis
있지만 색인 레벨 수와 동일한 길이의 목록을 전달해야합니다.
df1.rename_axis(['names', None, 'Colors'])
None
인덱스 레벨 이름을 효과적으로 삭제하는 데 사용할 수 있습니다 .
시리즈는 비슷하지만 약간의 차이가 있습니다.
세 가지 색인 수준으로 시리즈를 만들어 봅시다
s = df.set_index(['state', 'color'], append=True)['food']
s
state color
Jane NY blue Steak
Nick TX green Lamb
Aaron FL red Mango
Name: food, dtype: object
rename_axis
DataFrame을 사용한 방식과 유사하게 사용할 수 있습니다.
s.rename_axis(['Names','States','Colors'])
Names States Colors
Jane NY blue Steak
Nick TX green Lamb
Aaron FL red Mango
Name: food, dtype: object
Series 아래에라는 추가 메타 데이터가 있습니다 Name
. DataFrame에서 Series를 만들 때이 특성은 열 이름으로 설정됩니다.
rename
메소드에 문자열 이름을 전달 하여 변경할 수 있습니다
s.rename('FOOOOOD')
state color
Jane NY blue Steak
Nick TX green Lamb
Aaron FL red Mango
Name: FOOOOOD, dtype: object
DataFrames에는이 속성이 없으며 실제로 이와 같이 사용하면 예외가 발생합니다.
df.rename('my dataframe')
TypeError: 'str' object is not callable
팬더 0.21 이전 rename_axis
에는 인덱스 및 열의 값 이름을 바꾸는 데 사용할 수있었습니다 . 더 이상 사용되지 않으므로이 작업을 수행하지 마십시오
rename_axis
방법에 대한 자세한 설명을 확인하십시오 .