我正在使用pandas to_html函数创建表,并且希望能够突出显示输出表的底部行,该行的长度可变。我没有任何关于html的真实经验,我在网上发现的只是这个
<table border="1">
<tr style="background-color:#FF0000">
<th>Month</th>
<th>Savings</th>
</tr>
<tr>
<td>January</td>
<td>$100</td>
</tr>
</table>
因此,我知道最后一行必须具有<tr style=""background-color:#FF0000">
(或我想要的任何颜色)而不是仅仅<tr>
,但我真的不知道该怎么做是使它在我正在制作的表中发生。我不认为我可以使用to_html函数本身来完成此操作,但是在创建表后如何处理呢?
任何帮助表示赞赏。
您可以使用jQuery在JavaScript中完成此操作:
$('table tbody tr').filter(':last').css('background-color', '#FF0000')
此外,较新版本的pandas还在dataframe
表html中添加了一个类,因此您可以使用以下方法仅过滤掉pandas表:
$('table.dataframe tbody tr').filter(':last').css('background-color', '#FF0000')
但是您可以根据需要添加自己的类:
df.to_html(classes='my_class')
甚至多个:
df.to_html(classes=['my_class', 'my_other_class'])
如果您使用的是IPython Notebook,请参见以下完整示例:
In [1]: import numpy as np
import pandas as pd
from IPython.display import HTML, Javascript
In [2]: df = pd.DataFrame({'a': np.arange(10), 'b': np.random.randn(10)})
In [3]: HTML(df.to_html(classes='my_class'))
In [4]: Javascript('''$('.my_class tbody tr').filter(':last')
.css('background-color', '#FF0000');
''')
或者甚至可以使用纯CSS:
In [5]: HTML('''
<style>
.df tbody tr:last-child { background-color: #FF0000; }
</style>
''' + df.to_html(classes='df'))
可能性是无止境 :)
编辑:创建一个html文件
import numpy as np
import pandas as pd
HEADER = '''
<html>
<head>
<style>
.df tbody tr:last-child { background-color: #FF0000; }
</style>
</head>
<body>
'''
FOOTER = '''
</body>
</html>
'''
df = pd.DataFrame({'a': np.arange(10), 'b': np.random.randn(10)})
with open('test.html', 'w') as f:
f.write(HEADER)
f.write(df.to_html(classes='df'))
f.write(FOOTER)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句