我如何使用阈值条件来设置 Pandas 多级索引数据框列的样式?

huangapple go评论78阅读模式
英文:

How can I style Pandas multiindex dataframe columns using threshold conditioning?

问题

我有一个如下的多级索引数据框。

我想要突出显示所有"diff"列,对于负数/正数值,使用不同的背景颜色。

例如,类似于以下方式:

if '- ' in diff.value:
    'background-color: lightgreen'
else:
    'background-color: pink'

我该如何编写一个样式化器(styler)?

我如何使用阈值条件来设置 Pandas 多级索引数据框列的样式?

我在 https://stackoverflow.com/questions/62850436/pandas-multiindex-style-highlight-a-row 看到了另一个类似的问题,但是我的数据框似乎不能像该线程中建议的那样进行分组。

此外,该线程中的方法不包含阈值条件。

英文:

I got one multiindex dataframe as below.

I would like to highlight all the "diff" columns, with different background colors on negative/positive values.

e.g. something like

if '-' in diff.value:
'background-color: lightgreen'
else:
'background-color: pink'

How do I write a styler for it?

我如何使用阈值条件来设置 Pandas 多级索引数据框列的样式?

I see another similar issue in https://stackoverflow.com/questions/62850436/pandas-multiindex-style-highlight-a-row

But my dataframe seems not able to groupby as the recommendation in that thread.

Also the method in that thread does not contain threshold conditioning

答案1

得分: 0

你可以使用子集来突出显示包含“-”的行。

def highlight_minus(row):
    return np.where(row.astype(str).str.contains('-'),
                    'background-color: lightgreen',
                    'background-color: pink')

idx = pd.IndexSlice
slice_ = idx[:, idx[:, 'diff']]
s = df.style.apply(highlight_minus, axis=1, subset=slice_)
s.to_html('76374687.html')

我如何使用阈值条件来设置 Pandas 多级索引数据框列的样式?

英文:

You can use subset to highlight the row which contains -

def highlight_minus(row):
    return np.where(row.astype(str).str.contains('-'),
                    'background-color: lightgreen',
                    'background-color: pink')

idx = pd.IndexSlice
slice_ = idx[:, idx[:,'diff']]
s = df.style.apply(highlight_minus, axis=1, subset=slice_)
s.to_html('76374687.html')

我如何使用阈值条件来设置 Pandas 多级索引数据框列的样式?

huangapple
  • 本文由 发表于 2023年5月31日 22:39:56
  • 转载请务必保留本文链接:https://go.coder-hub.com/76374687.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定