首页 > 解决方案 > 如何设置转置 MultiIndex DataFrame 的样式

问题描述

我正在尝试格式化以下转置多索引数据帧:

        0   1   2   3
B   sum 22  22  0   0
    d   0   0   -22 -22
    d%  0   0   -1  -1
C   sum 30  15  30  60
    d   0   15  0   30
    d%  0   -0.5    1

我想在二级索引以 结尾的行上应用 astyle.bar和 a ,但我一生都无法弄清楚如何在 MultiIndex 数据帧中的行上应用。style.format("{:.2%}"%subset

我尝试过使用 IndexSlice,以及许多其他方法都无济于事。有没有办法做到这一点?

标签: pythonpandasdata-science

解决方案


经过一番玩耍,将元组传递给subset作品:

rows = [idx for idx in df.index if idx[1][-1]=='%']
df.style.format("{:.2%}",subset=(rows,pd.IndexSlice[:]))
# equivalently
# df.style.format("{:.2%}",subset=(rows,df.columns))

输出:

                   0        1              2    3
B   sum            0        1              2    3
     d%      400.00%     500.00%     600.00%    700.00%
C   sum            8           9          10    11
     d%     1200.00%    1300.00%    1400.00%    1500.00%

推荐阅读