我正在使用 pd.to_html() 方法构建 HTML 格式的报告。任何人都可以阐明如何为特定数据框列格式化值介于 -0.5 和 0.5 之间且具有绿色背景的单元格吗?
最佳答案
您可以使用 style
属性(从 pandas v0.17.1 开始引入)对 DataFrame 进行自定义格式化。
一个做你想做的事的例子:
df = pd.DataFrame(np.random.randn(5,5), columns=list('ABCDE'))
def highlight_vals(val, min=-0.5, max=0.5, color='green'):
if min < val < max:
return 'background-color: %s' % color
else:
return ''
df.style.applymap(highlight_vals, subset=['B', 'C', 'D'])
给你
有关完整示例,请参阅此笔记本:http://nbviewer.jupyter.org/gist/jorisvandenbossche/8b74f71734cd6d75a58c5a048261a7a7
有关如何格式化数据框的更多示例,请参阅文档:http://pandas.pydata.org/pandas-docs/stable/style.html
要将输出写入文件,您可以这样做:
with open('filename.html', 'w') as f:
f.write(df.style.applymap(highlight_vals, subset=['B', 'C', 'D'])
.set_table_attributes("border=1").render())
关于html - Pandas HTML 输出条件格式 - 如果值在范围内则突出显示单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37638402/