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

Python Pandas 样式函数在特定条件下突出显示特定列

Python Pandas 样式函数在特定条件下突出显示特定列

呼唤远方 2021-06-18 14:01:34
我正在尝试编写一个函数,该函数比较两个数据框列并在条件匹配时单独突出显示一列。例如如下:我在数据框中有两列(“C1”、“C2”)。我想迭代并比较两列中的每个值。如果 C1 > C2,则在 C1 中突出显示该值。从下面,C1 中的(6 和 7)将突出显示。我从不同的地方得到了下面的代码,但如果我能得到更好的解决方案会很有帮助。df = pd.DataFrame({'C1': [0,6,7], 'C2':[1,4,5]})i = 0def color_red(val):    global i    if not i > len(df['C1'])-1:        color = 'red' if df['C1'][i] > df['C2'][i] else 'black'        i+=1    else:        i = 0        color = 'red' if df['C1'][i] > df['C2'][i] else 'black'        i+=1    return 'color: %s' % colors = df.style.applymap(color_red,subset=['C1'])s
查看完整描述

1 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

您可以使用apply()带axis=1参数的方法来逐行应用您的样式:


df = pd.DataFrame({'C1': [0,6,7], 'C2':[1,4,5]})


def color_red(s):

    color = 'color: red' if s.iloc[0] > s.iloc[1] else 'color: black'

    colors = [color] + [''] * (s.size - 1)

    return colors


s = df.style.apply(color_red, axis=1)


查看完整回答
反对 回复 2021-06-22
  • 1 回答
  • 0 关注
  • 92 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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