我有 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 元素。
這是預期的結果:

當前失敗的功能
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().
uj5u.com熱心網友回復:
您可以使用忽略輸入并簡單地使用其他 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))
輸出:

uj5u.com熱心網友回復:
您還可以使用
可選
匯入(和版本):
import numpy as np # 1.22.3
import pandas as pd # 1.4.2
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/474502.html
