我有一个像DataFrame
df = pd.DataFrame(np.random.randn(10).reshape(2, 5))
df
# 0 1 2 3 4
# 0 -0.067162 -0.505401 -0.019208 1.123936 0.087682
# 1 -0.373212 -0.598412 0.185211 0.736143 -0.469111
Run Code Online (Sandbox Code Playgroud)
我想输出这些数据帧为HTML,和以前使用to_html像
df.to_html(classes=['table', 'table-hover', 'table-bordered'],
float_format=lambda x: '{0:.3f}s'.format(x))
Run Code Online (Sandbox Code Playgroud)
但后来我遇到了Style功能,并认为在我的DataFrame中为浮动设备设置样式会很好.喜欢
def colorize(num)
color = 'red' if (np.isnan(num) or num > 0) else 'green'
return 'color: %s' % color
Run Code Online (Sandbox Code Playgroud)
我可以将其应用于我的DataFrame
df_styler = df.Style.applymap(colorize)
Run Code Online (Sandbox Code Playgroud)
但是现在df_styler是一个Styler对象,虽然它有一个render方法,但我看不出如何传递classes我正在使用的列表或浮动格式化程序to_html...
有没有办法可以使用Style函数和CSS类/格式化程序组合to_html?
试试这个:
html = df.style.applymap(colorize) \
.set_table_attributes('border="1" class="dataframe table table-hover table-bordered"') \
.set_precision(3) \
.render()
with open('d:/temp/a2.html', 'w') as f:
f.write(html)
Run Code Online (Sandbox Code Playgroud)
结果: