Pandas で Index を dictionary で更新したい
pandas のデータフレームで以下のようなものが有るとします。
In [1]: import pandas as pd In [2]: import numpy as np In [3]: df_train = pd.DataFrame(data=np.random.uniform(size=(3, 2)), index=['one ...: ', 'two', 'three']) In [4]: df_train Out[4]: 0 1 one 0.289881 0.649603 two 0.229427 0.811377 three 0.498204 0.779105
でこの index を例えば日本語の "いち", "に", "さん"
になおしたいなという時。愚かな方法だと index.str.replace
につらつらと書いていく方法があります.
df_train.index = df_train.index.str.replace('one', 'いち').str.replace('two', 'に')
でもなんかださいですね。dict で対応関係を記述して, それを元に変換するというふうにコードの責任分離をやりたいところです。
調べた所 pandas.DataFrame.rename
を index にたいして使えとありました。
In [5]: en_ja_map = dict(one='いち', two='に', three='さん') In [6]: df_train = df_train.rename(en_ja_map, axis='index') In [7]: df_train Out[7]: 0 1 いち 0.289881 0.649603 に 0.229427 0.811377 さん 0.498204 0.779105
おしゃれでいいですね;)