Jawaban yang dipilih saat ini tidak menyebutkan rename_axis
metode yang dapat digunakan untuk mengganti nama indeks dan tingkat kolom.
Panda memiliki beberapa keanehan dalam hal mengganti nama level indeks. Ada juga metode DataFrame baru yang rename_axis
tersedia untuk mengubah nama tingkat indeks.
Mari kita lihat 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 ini memiliki satu level untuk setiap indeks baris dan kolom. Baik indeks baris dan kolom tidak memiliki nama. Mari kita ubah nama tingkat indeks baris menjadi 'nama'.
df.rename_axis('names')
The rename_axis
Metode juga memiliki kemampuan untuk mengubah nama tingkat kolom dengan mengubah axis
parameter:
df.rename_axis('names').rename_axis('attributes', axis='columns')
Jika Anda mengatur indeks dengan beberapa kolom, maka nama kolom akan menjadi nama level indeks baru. Mari tambahkan ke tingkat indeks ke DataFrame asli kita:
df1 = df.set_index(['state', 'color'], append=True)
df1
Perhatikan bagaimana indeks asli tidak memiliki nama. Kita masih dapat menggunakan rename_axis
tetapi harus mengirimkannya daftar dengan panjang yang sama dengan jumlah level indeks.
df1.rename_axis(['names', None, 'Colors'])
Anda dapat menggunakan None
untuk menghapus nama tingkat indeks secara efektif.
Seri bekerja sama tetapi dengan beberapa perbedaan
Mari buat Seri dengan tiga level indeks
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
Kita dapat menggunakan rename_axis
serupa dengan yang kita lakukan dengan 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
Perhatikan bahwa ada bagian ekstra dari metadata di bawah Seri yang dipanggil Name
. Saat membuat Series dari DataFrame, atribut ini disetel ke nama kolom.
Kita bisa memberikan nama string ke rename
metode untuk mengubahnya
s.rename('FOOOOOD')
state color
Jane NY blue Steak
Nick TX green Lamb
Aaron FL red Mango
Name: FOOOOOD, dtype: object
DataFrames tidak memiliki atribut ini dan faktanya akan memunculkan pengecualian jika digunakan seperti ini
df.rename('my dataframe')
TypeError: 'str' object is not callable
Sebelum pandas 0.21, Anda dapat menggunakan rename_axis
untuk mengganti nama nilai di indeks dan kolom. Sudah usang, jadi jangan lakukan ini
rename_axis
metode yang sangat rinci .