我有一些数据包含实际值的列,然后是原始目标值
dimension | metric_actual | metric_target | metric2_actual | metric2_target
A 16.41 20.00 68.54% 72.00%
B 17.39 18.00 63.87% 60.00%
理想情况下,如果 metric_actual 小于目标,我希望单元格有红色文本,如果它大于目标,我希望单元格有绿色文本。
我想使用 .style 选项将数据框输出到电子邮件中。尽管每行的目标可能不同,但我似乎无法弄清楚如何逐行执行此操作。
http://pandas.pydata.org/pandas-docs/stable/style.html
这些功能有效,但前提是我有一个静态列。我的问题是数据中每一行的相同指标的目标不同。
def color_negative_red(value, target):
color = 'red' if value < target else 'green'
return 'color: %s' % color
编辑问题是我得到“真相是模棱两可的错误”:
df.style.applymap(color_negative_red, target=df['metric_target'], subset=['metric_actual']
我觉得这应该是可能的,但我需要将每行的每个值与同一行中的相应目标值进行比较。