gpt4 book ai didi

python - 如何在特定级别为多索引列添加前缀?

转载 作者:行者123 更新时间:2023-11-28 21:31:41 25 4
gpt4 key购买 nike

假设我有一个数据框

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

我想为零级列添加前缀,我该怎么做?

目前我正在重命名如下所示的列,感觉是多余的。

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])

或使用mapper重命名:

dfmi.rename(mapper=lambda x: f'pre_{x}', 
axis='columns',
level=0,
inplace=True)

关于python - 如何在特定级别为多索引列添加前缀?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57740319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com