Pandas kullanan bir DataFrame'im ve orijinal sütun etiketlerini değiştirmek için düzenlemem gereken sütun etiketlerim var.
Orijinal sütun adlarının bulunduğu bir DataFrame A
içindeki sütun adlarını değiştirmek istiyorum:
['$a', '$b', '$c', '$d', '$e']
için
['a', 'b', 'c', 'd', 'e'].
Düzenlenen sütun adlarını bir listeye kaydettim, ancak sütun adlarını nasıl değiştireceğimi bilmiyorum.
df.rename()
]1 işlevini kullanın ve yeniden adlandırılacak sütunlara bakın. Tüm sütunların yeniden adlandırılması gerekmez:
df = df.rename(columns={'oldName1': 'newName1', 'oldName2': 'newName2'})
# Or rename the existing DataFrame (rather than creating a copy)
df.rename(columns={'oldName1': 'newName1', 'oldName2': 'newName2'}, inplace=True)
Minimal Kod Örneği
df = pd.DataFrame('x', index=range(3), columns=list('abcde'))
df
a b c d e
0 x x x x x
1 x x x x x
2 x x x x x
Aşağıdaki yöntemlerin hepsi çalışır ve aynı çıktıyı üretir:
df2 = df.rename({'a': 'X', 'b': 'Y'}, axis=1) # new method
df2 = df.rename({'a': 'X', 'b': 'Y'}, axis='columns')
df2 = df.rename(columns={'a': 'X', 'b': 'Y'}) # old method
df2
X Y c d e
0 x x x x x
1 x x x x x
2 x x x x x
Değişiklik yerinde olmadığı için sonucu geri atamayı unutmayın. Alternatif olarak, inplace=True
belirtin:
df.rename({'a': 'X', 'b': 'Y'}, axis=1, inplace=True)
df
X Y c d e
0 x x x x x
1 x x x x x
2 x x x x x
v0.25'ten itibaren, geçersiz bir sütun yeniden adlandırması belirtilirse hataları yükseltmek için errors='raise'
belirtebilirsiniz. Bakınız v0.25 rename()
docs.
axis=1ve
inplace=False(bir kopya döndürmek için) ile [
df.set_axis()`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.set_axis.html) kullanın.
df2 = df.set_axis(['V', 'W', 'X', 'Y', 'Z'], axis=1, inplace=False)
df2
V W X Y Z
0 x x x x x
1 x x x x x
2 x x x x x
Bu bir kopya döndürür, ancak inplace=True
ayarını yaparak DataFrame'i yerinde değiştirebilirsiniz (bu <=0.24 sürümleri için varsayılan davranıştır, ancak gelecekte değişmesi muhtemeldir).
Başlıkları doğrudan da atayabilirsiniz:
df.columns = ['V', 'W', 'X', 'Y', 'Z']
df
V W X Y Z
0 x x x x x
1 x x x x x
2 x x x x x
Örneğin, rename
yöntemi bir fonksiyon alabilir:
In [11]: df.columns
Out[11]: Index([u'$a', u'$b', u'$c', u'$d', u'$e'], dtype=object)
In [12]: df.rename(columns=lambda x: x[1:], inplace=True)
In [13]: df.columns
Out[13]: Index([u'a', u'b', u'c', u'd', u'e'], dtype=object)