我有两个具有相同索引/列的数据帧:

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().

推荐答案

可以使用忽略输入的函数,只使用其他数据帧:

def color_boolean(val):
    return f'col或者: {"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相关问答推荐

对某些列的总数进行民意调查,但不单独列出每列

Python json.转储包含一些UTF-8字符的二元组,要么失败,要么转换它们.我希望编码字符按原样保留

优化pytorch函数以消除for循环

如何在Django基于类的视图中有效地使用UTE和RST HTIP方法?

如何更改分组条形图中条形图的 colored颜色 ?

如何在Python数据框架中加速序列的符号化

如何将一个动态分配的C数组转换为Numpy数组,并在C扩展模块中返回给Python

在Python argparse包中添加formatter_class MetavarTypeHelpFormatter时, - help不再工作""""

Django REST Framework:无法正确地将值注释到多对多模型,不断得到错误字段名称字段对模型无效'<><>

使用密钥字典重新配置嵌套字典密钥名

递归访问嵌套字典中的元素值

连接一个rabrame和另一个1d rabrame不是问题,但当使用[...]'运算符会产生不同的结果

在www.example.com中使用`package_data`包含不包含__init__. py的非Python文件

合并帧,但不按合并键排序

需要帮助重新调整python fill_between与数据点

下三角形掩码与seaborn clustermap bug

Odoo16:模板中使用的docs变量在哪里定义?

应用指定的规则构建数组

504未连接IB API TWS错误—即使API连接显示已接受''

如何将ManyToManyfield用于Self类