python - `pandas.DataFrame.to_html()` 没有 `table border` 和 `tr style`

标签 python html pandas

根据标题,是否有可能——如果有,如何——从 pandas.DataFrame.to_html() 生成“干净”的 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')

它产生:
<table border="0" class="dataframe">
  <thead>
    <tr style="text-align: inherit;">
    ...

但是,我一直期待:
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)

会/应该产生:
<table class="dataframe">
  <thead>
    <tr>
    ...

代替:
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
    ...

自推出以来borderstyle是外观而不是结构标签,应该通过 css 包含在内.

那么,有没有办法摆脱border来自 tablestyle来自 trthead ?

最佳答案

正如您已经观察到的,df.to_html(classes=None, border=None, justify=None)忽略 None 的设置, 插入默认值。有修改这个的公开请求,但它们还没有到位。就目前而言,删除这些硬编码样式的唯一方法是操作输出字符串,如下所示:

html = re.sub(r'<tr.*>', '<tr>', df.to_html().replace('border="1" ', ''))

删除 class="dataframe"可以以相同的方式完成,但如果保留原位,这不应该影响大多数 CSS。

关于python - `pandas.DataFrame.to_html()` 没有 `table border` 和 `tr style`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51460112/

相关文章:

python - 模拟相关的多变量数据

html - border-radius 生成eclipse,需要90度圆 Angular 。 CSS

python - 如何访问项目根文件夹

python - 使用 python/pandas/seaborn 将分类数据绘制成相对频率的单个条形图

python - 如何在 GAE 上使用 Python 中的服务帐户?

javascript - 我使用以下条件将输入值分割为 '-' 。如果输入仅为 123,如何限制第二个值

javascript - 将按钮分配给颜色框

python - 计算字典 pandas 列中的项目

python - Pandas - 使用 str.contains 来匹配字符串

python - 两个数据帧之间 Pandas 的计算集差异