Şu anda seçili yanıt rename_axis
, dizin ve sütun düzeylerini yeniden adlandırmak için kullanılabilecek yöntemden bahsetmiyor .
Endeks seviyelerini yeniden adlandırmaya gelince Pandalar biraz tuhaflığa sahiptir. rename_axis
Dizin düzeyi adlarını değiştirmek için yeni bir DataFrame yöntemi de vardır.
Bir DataFrame'e bakalım
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'])
Bu DataFrame, satır ve sütun dizinlerinin her biri için bir düzey içerir. Hem satır hem de sütun dizininin adı yoktur. Satır dizini düzey adını 'adlar' olarak değiştirelim.
df.rename_axis('names')
rename_axis
Yöntem ayrıca, değiştirerek kolon seviyesi adları değiştirme yeteneğine sahip axis
parametre:
df.rename_axis('names').rename_axis('attributes', axis='columns')
Dizini sütunlardan bazılarıyla ayarlarsanız, sütun adı yeni dizin düzeyi adı olur. Orijinal DataFrame'imize dizin düzeylerini ekleyelim:
df1 = df.set_index(['state', 'color'], append=True)
df1
Orijinal dizinin nasıl adı olmadığına dikkat edin. Yine de kullanabiliriz, rename_axis
ancak bunu, dizin düzeyi sayısıyla aynı uzunlukta bir liste geçirmemiz gerekir.
df1.rename_axis(['names', None, 'Colors'])
None
Dizin düzeyi adlarını etkili bir şekilde silmek için kullanabilirsiniz .
Seri benzer şekilde çalışır ancak bazı farklılıklarla
Üç dizin düzeyine sahip bir Seri oluşturalım
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
DataFrames ile yaptığımız gibi benzer şekilde kullanabiliriz
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
Dizinin altında fazladan bir meta veri parçası olduğuna dikkat edin Name
. Bir DataFrame'den Seri oluştururken, bu özellik sütun adına ayarlanır.
Bir dize adını değiştirmek için rename
yönteme aktarabiliriz
s.rename('FOOOOOD')
state color
Jane NY blue Steak
Nick TX green Lamb
Aaron FL red Mango
Name: FOOOOOD, dtype: object
DataFrames bu özelliğe sahip değildir ve böyle kullanılırsa infact bir istisna oluşturur
df.rename('my dataframe')
TypeError: 'str' object is not callable
Pandalar 0.21'den önce rename_axis
, dizin ve sütunlardaki değerleri yeniden adlandırmak için kullanılmış olabilirdiniz . Kullanımdan kaldırıldı, bu yüzden yapma
rename_axis
.