python – Pandas Dataframes to
我正在使用大pandasto_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函数本身,但是如何在表创建后呢?
任何帮助是赞赏。
你可以在javascript中使用jQuery:
$('table tbody tr').filter(':last').css('background-color', '#FF0000')
还有较新版本的大pandas将一个类数据框添加到表格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笔记本,这里是完整的工作示例:
In [1]: import numpy as np import pandas as pd from IPython.display import HTML, JavascriptIn [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 npimport pandas as pdHEADER = '''<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)
赞 (0)