Python 如何使用pandas在条件下应用不同的样式

Python 如何使用pandas在条件下应用不同的样式,python,pandas,dataframe,styling,Python,Pandas,Dataframe,Styling,我想根据另一个等长列表中的值,对数据帧上的列应用不同的背景色。我的数据(这是一个玩具示例)具有以下结构: Username Password Indications New_name Mr/Mrs Balance Carlos xxx LoreIpsum Corona Mrs 100 Daniel yyy LoreIpsum Corona Mrs 200 Guille

我想根据另一个等长列表中的值,对数据帧上的列应用不同的背景色。我的数据(这是一个玩具示例)具有以下结构:

Username    Password    Indications New_name    Mr/Mrs  Balance
Carlos       xxx         LoreIpsum  Corona      Mrs     100
Daniel       yyy         LoreIpsum  Corona      Mrs     200
Guille       zzz         LoreIpsum  Corona      Mrs     300
我正在开发一个测试自动化框架。在某些时候,我需要从网站上读取值(余额列),并将其与我从excel中读取的值进行比较。这样做之后,我会在列表中附加一个True或False。因此,如果前两个读取值与电子表格上的数据相等,但第三个值错误,则我的列表将具有以下外观:

In:  Print(checkList)
Out: [True, True, False]
我发现了如何通过以下命令将样式应用于行:

df.style.applymap(lambda x: 'background-color: red' if Condition else 'background-color: green', subset=['Balance'])

我的问题是,我不知道如何迭代行以及布尔值列表,在上面的代码行中,对所有行应用相同的条件。如有必要,我可以提供进一步的解释。

您可以根据条件创建
数据框
,由
背景色
填充,例如,从以下列表中:

checkList=[True,True,False]
def突出显示(x):
c1='背景色:红色'
c2='背景色:绿色'
#如有必要,通过条件
#检查表=x[“余额”]<300
#样式的空数据框
df1=pd.DataFrame(“”,index=x.index,columns=x.columns)
#按列表中的条件设置平衡列(必要时与df长度相同)
df1[“余额”]=np.式中(检查表,c1,c2)
返回df1
df.style.apply(高亮显示,轴=无)

感谢您的快速响应,很遗憾,我要到明天早上才能测试它。我将发布任何进一步的问题(如果有),如果证明正确,我希望接受您的答案。@CarlosHernandezPerez-当然,请测试并告诉我;)快乐的编码。@CarlosHernandezPerez-一个很难回答的问题,不确定是否支持它。
checkList =  [True, True, False]

def highlight(x):
    c1 = 'background-color: red'
    c2 = 'background-color: green' 

    #if necessary pass condition
    #checkList = x['Balance'] < 300
    #empty DataFrame of styles
    df1 = pd.DataFrame('', index=x.index, columns=x.columns)
    #set Balance column by condition in list (necessary same length like df)
    df1['Balance'] = np.where(checkList, c1, c2)
    return df1


df.style.apply(highlight, axis=None)