为了账号安全,请及时绑定邮箱和手机立即绑定

根据两种不同的条件突出显示熊猫数据框列

根据两种不同的条件突出显示熊猫数据框列

元芳怎么了 2022-12-20 11:22:06
我有以下数据框comp:    time        first_max   name             second_max name.1      Perceived OoM.1 Perceived OoM.20   0.000000    18          shoulder_center  9          right_hip   shoulder_center shoulder_center1   0.010000    18          shoulder_center  9          right_hip   shoulder_center shoulder_center2   0.020000    18          right_hip        9          right_hip   shoulder_center right_hip3   0.030000    18          shoulder_center  9          right_hip   shoulder_center right_hip我有这个功能,可以根据是否突出显示整行name == Perceived OoM.1:def highlight_col(x):    df = x.copy()    mask = df['name'] == df['Perceived OoM.1']    df.loc[mask, :] = 'background-color: yellow'    df.loc[~mask,:] = 'background-color: ""'    return dfcomp.style.apply(highlight_col, axis=None)但是,我想找出一种方法来为整行着色另一种颜色 if name == Perceived OoM.2。基本上,我希望该行为黄色 ifname == Perceived OoM.1否则该行为蓝色 if name == Perceived OoM.2。但我似乎无法将该条件应用到我的函数中。有什么帮助吗?
查看完整描述

2 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

创建另一个掩码并以相同的方式传递,同样对于默认空值使用DataFrame构造函数:


def highlight_col(x):

    df = pd.DataFrame('', index=x.index, columns=x.columns)

    mask1 = x['name'] == x['Perceived OoM.1']

    mask2 = x['name'] == x['Perceived OoM.2']

    df.loc[mask1, :] = 'background-color: yellow'

    df.loc[mask2, :] = 'background-color: blue'

    return df


查看完整回答
反对 回复 2022-12-20
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

另一种方法是定义一个函数,这样你就可以在行上应用:


def highlight(x):

    color = 'background-color:yellow' if  x['name']==x['Perceived OoM.1']\

            else 'background-color: green' if x['name']==x['Perceived OoM.2']\

            else ''

    return [color]*len(x)


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

输出:

//img1.sycdn.imooc.com//63a12a8400011a8906100110.jpg

查看完整回答
反对 回复 2022-12-20
  • 2 回答
  • 0 关注
  • 180 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号