Pandas数据表转换为带有页脚的html

vql8enpb  于 2023-03-06  发布在  其他
关注(0)|答案(2)|浏览(147)

假设我将以下数据输出到HTML:

import pandas as pd
d = {'col1': [1, 2], 'col2': [3, 4]}
df = pd.DataFrame(data=d)
df.to_html(index = False, header = "true")

我想要的是,它还可以生成页脚信息,类似于末尾的</tbody>标记之后的内容。

<tfoot>\n     <th>col1</th>\n      <th>col2</th>\n    </tr>\n  </tfoot>

这里的文档https://pandas.pydata.org/pandas-docs/version/0.23.4/generated/pandas.DataFrame.to_html.html没有建议页脚选项,所以很好奇是否有解决方案?
许多表是动态生成的,因此硬编码是不可行的。
谢谢你的建议

huus2vyu

huus2vyu1#

df.to返回一个字符串,这样您就可以手动添加它。

import pandas as pd
d = {'col1': [1, 2], 'col2': [3, 4]}
df = pd.DataFrame(data=d)
df.to_html(index = False, header = "true")\
+"<tfoot>\n" + " ".join(["<th>"+ i +"</th>\n" for i in df.columns])+"</tr>\n  </tfoot>"

输出

'<table border="1" class="dataframe">\n  <thead>\n    <tr style="text-align: right;">\n      <th>col1</th>\n      <th>col2</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <td>1</td>\n      <td>3</td>\n    </tr>\n    <tr>\n      <td>2</td>\n      <td>4</td>\n    </tr>\n  </tbody>\n</table><tfoot>\n<th>col1</th>\n <th>col2</th>\n</tr>\n  </tfoot>'
rekjcdws

rekjcdws2#

我在FastAPI中完成了以下操作

import pandas as pd
from fastapi.responses import HTMLResponse

d = {'A': [1, 2], 'B': [3, 4]}
df = pd.DataFrame(data=d)

1.将df转换为表格HTML,这将使表格成为字符串

df_into_html = df.to_html(escape=False, index=False, border=0)

1.在上面生成的表格HTML中添加<tfoot>tfoot具有所有标题名称,我们需要在</table>之前插入<tfoot>。首先查找</table>的索引

idx = df_into_html.index('</table>')

1.在</table>之前插入<tfoot>,使<tfoot>进入表中

final_table = df_into_html[:idx] + "<tfoot><tr>" + " ".join(["<th>"+ i +"</th>" for i in df.columns])+"</tr> </tfoot>" + df_into_html[idx:]
  1. print(final_table)
输出
<table class="dataframe">
<thead>
    <tr style="text-align: right;">
    <th>A</th>
    <th>B</th>
    </tr>
</thead>
<tbody>
    <tr>
    <td>1</td>
    <td>3</td>
    </tr>
    <tr>
    <td>2</td>
    <td>4</td>
    </tr>
</tbody>
<tfoot><tr><th>A</th> <th>B</th></tr> </tfoot>
</table>

相关问题