gpt4 book ai didi

python - 基于 boolean pandas df 的高亮元素

转载 作者:行者123 更新时间:2023-12-05 04:29:46 24 4
gpt4 key购买 nike

我有 2 个具有相同索引/列的数据框:

df = pd.DataFrame({'A':[5.5, 3, 0, 3, 1],
'B':[2, 1, 0.2, 4, 5],
'C':[3, 1, 3.5, 6, 0]})

df_bool = pd.DataFrame({'A':[0, 1, 0, 0, 1],
'B':[0, 0, 1, 0, 0],
'C':[1, 1, 1, 0, 0]})

我想使用 df_bool 作为掩码将样式函数应用于 df 元素。

这是预期的结果:

expected results

当前失败的函数

def color_boolean(val):
color =''
if df_bool == 1:
color = 'red'
elif df_bool == 0:
color = 'black'
return f'color: {color}'

df.head().style.apply(color_boolean, axis=None)
ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

最佳答案

您可以使用忽略输入并仅使用其他 DataFrame 的函数:

def color_boolean(val):
return f'color: {"red" if val else "black"}'

df.style.apply(lambda _: df_bool.applymap(color_boolean), axis=None)

或:

df.style.apply(lambda c: df_bool[c.name].apply(color_boolean))

输出:

dataframe style

关于python - 基于 boolean pandas df 的高亮元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72236704/

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