我正在尝试编写一个函数,该函数比较两个数据框列并在条件匹配时单独突出显示一列。例如如下:我在数据框中有两列(“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)
添加回答
举报
0/150
提交
取消