私がデータフレームを持っているとしましょう
micolumns = pd.MultiIndex.from_tuples([('a', 'foo'), ('a', 'bar'),
('b', 'foo'), ('b', 'bah')])
miindex=np.arange(3)
dfmi = pd.DataFrame(np.arange(3 * len(micolumns)).reshape((len(miindex), len(micolumns))),
index=miindex, columns=micolumns).sort_index().sort_index(axis=1)
a b
bar foo bah foo
0 1 0 3 2
1 5 4 7 6
2 9 8 11 10
レベル0の列にプレフィックスを追加したいのですが、どうすればよいですか?
現在、以下のように列の名前を変更していますが、冗長に感じます。
df_new = dfmi.rename(columns=dict(zip(dfmi.columns.levels[0],'pre_'+dfmi.columns.levels[0])),level=0)
pre_a pre_b
bar foo bah foo
0 1 0 3 2
1 5 4 7 6
2 9 8 11 10
add_prefix
関数のレベルパラメータはありません。そのための同様の機能はありますか?
すぐに:
dfmi.columns = pd.MultiIndex.from_tuples([(f'pre_{a}',b) for a,b in dfmi.columns])
またはrename
でmapper
:
dfmi.rename(mapper=lambda x: f'pre_{x}',
axis='columns',
level=0,
inplace=True)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加