Câu trả lời hiện được chọn không đề cập đến rename_axis
phương pháp có thể được sử dụng để đổi tên các cấp chỉ mục và cột.
Pandas có một số khó khăn khi đổi tên các cấp của chỉ số. Ngoài ra còn có một phương thức DataFrame mới rename_axis
để thay đổi tên cấp chỉ mục.
Chúng ta hãy xem một 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 này có một cấp cho mỗi chỉ mục hàng và cột. Cả chỉ số hàng và cột không có tên. Hãy thay đổi tên cấp chỉ mục hàng thành 'tên'.
df.rename_axis('names')
Các rename_axis
phương pháp cũng có khả năng để thay đổi tên cột mức độ bằng cách thay đổi các axis
tham số:
df.rename_axis('names').rename_axis('attributes', axis='columns')
Nếu bạn đặt chỉ mục với một số cột, thì tên cột sẽ trở thành tên cấp chỉ mục mới. Hãy nối các cấp chỉ mục vào DataFrame gốc của chúng tôi:
df1 = df.set_index(['state', 'color'], append=True)
df1
Lưu ý cách chỉ mục gốc không có tên. Chúng ta vẫn có thể sử dụng rename_axis
nhưng cần phải vượt qua nó một danh sách có cùng độ dài với số cấp chỉ mục.
df1.rename_axis(['names', None, 'Colors'])
Bạn có thể sử dụng None
để xóa tên cấp chỉ mục một cách hiệu quả.
Series hoạt động tương tự nhưng với một số khác biệt
Hãy tạo một Series với ba cấp độ chỉ mục
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
Chúng ta có thể sử dụng rename_axis
tương tự như cách chúng ta đã làm với DataFrames
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
Lưu ý rằng có một phần siêu dữ liệu bổ sung bên dưới Sê-ri được gọi Name
. Khi tạo Sê-ri từ Khung dữ liệu, thuộc tính này được đặt thành tên cột.
Chúng ta có thể truyền tên chuỗi cho rename
phương thức để thay đổi nó
s.rename('FOOOOOD')
state color
Jane NY blue Steak
Nick TX green Lamb
Aaron FL red Mango
Name: FOOOOOD, dtype: object
DataFrames không có thuộc tính này và infact sẽ đưa ra một ngoại lệ nếu được sử dụng như thế này
df.rename('my dataframe')
TypeError: 'str' object is not callable
Trước gấu trúc 0,21, bạn có thể đã sử dụng rename_axis
để đổi tên các giá trị trong chỉ mục và cột. Nó đã bị phản đối vì vậy đừng làm điều này
rename_axis
phương pháp.