nor*_*ok2 5 html python pandas
根据标题,是否有可能——如果有,如何——从 生成“干净”的 HTML 代码pandas.DataFrame.to_html()?
我发现border=...和justify=...参数控制着那里显示的内容,但显然无论你在那里放什么值,你似乎总是能得到它们。
这是一个最小的工作示例:
import pandas as pd
import numpy as np
df = pd.DataFrame(data=np.arange(3 * 4).reshape(3, 4))
df.to_html(border=0, justify='inherit')
Run Code Online (Sandbox Code Playgroud)
它产生:
<table border="0" class="dataframe">
<thead>
<tr style="text-align: inherit;">
...
Run Code Online (Sandbox Code Playgroud)
但是,我一直期待:
import pandas as pd
import numpy as np
df = pd.DataFrame(data=np.arange(3 * 4).reshape(3, 4))
df.to_html(classes=None, border=None, justify=None)
Run Code Online (Sandbox Code Playgroud)
会/应该产生:
<table class="dataframe">
<thead>
<tr>
...
Run Code Online (Sandbox Code Playgroud)
代替:
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
...
Run Code Online (Sandbox Code Playgroud)
因为介绍border和style都是外观而不是结构标签,应该通过css.
那么,有没有什么办法可以摆脱border从table和style从tr里面thead?
正如您已经观察到的,df.to_html(classes=None, border=None, justify=None)忽略 的设置None,无论如何插入默认值。有公开请求对此进行修改,但尚未到位。就目前情况而言,删除这些硬编码样式的唯一方法是操作输出字符串,如下所示:
html = re.sub(r'<tr.*>', '<tr>', df.to_html().replace('border="1" ', ''))
Run Code Online (Sandbox Code Playgroud)
可以用同样的方式完成删除class="dataframe",但如果保留在原处,这不会影响大多数 CSS。
| 归档时间: |
|
| 查看次数: |
2023 次 |
| 最近记录: |