Flo*_*oor 5 python multi-index pandas
假设我有一个数据框
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
Run Code Online (Sandbox Code Playgroud)
我想在零级的列中添加前缀,我该怎么做?
目前我正在重命名如下列,感觉多余。
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
Run Code Online (Sandbox Code Playgroud)
add_prefix
函数没有级别参数。有没有类似的功能?
一个快速的方法是:
dfmi.columns = pd.MultiIndex.from_tuples([(f'pre_{a}',b) for a,b in dfmi.columns])
Run Code Online (Sandbox Code Playgroud)
或rename
与mapper
:
dfmi.rename(mapper=lambda x: f'pre_{x}',
axis='columns',
level=0,
inplace=True)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
879 次 |
最近记录: |