使用所有标签将Pandas DataFrame转换为html

时间:2019-05-07 19:16:53

标签: python html python-3.x pandas html-table

此HTML有两个表:

'<div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/><col/><col/><col/><col/><col/><col/><col/><col/></colgroup><tbody><tr><th class="confluenceTh">Run</th><th class="confluenceTh">Date</th><th class="confluenceTh">Version</th><th class="confluenceTh">Model</th><th class="confluenceTh">OverallPrec</th><th class="confluenceTh">OverallRec</th><th class="confluenceTh"><span>PersonPrec</span></th><th class="confluenceTh"><span>Personrec</span></th><th class="confluenceTh">AnimalF1</th><th class="confluenceTh">VehicleF1</th></tr><tr><td class="confluenceTd">PR-191</td><td class="confluenceTd"><span>15,3/12/19,15:30</span></td><td class="confluenceTd"><span>1.2.191_abcdefg</span></td><td class="confluenceTd"><span>rfcn_dcn_0221</span></td><td class="confluenceTd"><span>0.95</span></td><td class="confluenceTd"><span>0.95</span></td><td class="confluenceTd"><span>0.98</span></td><td class="confluenceTd"><span>0.93</span></td><td class="confluenceTd"><span>0.85</span></td><td class="confluenceTd"><span>0.85</span></td></tr></tbody></table></div><div class="table-wrap"><table class="confluenceTable"><colgroup><col/><col/><col/><col/></colgroup><tbody><tr><th class="confluenceTh">Col1</th><th class="confluenceTh">Col2</th><th class="confluenceTh">Col3</th><th class="confluenceTh"><p>Col4</p></th></tr><tr><td colspan="1" class="confluenceTd">1</td><td colspan="1" class="confluenceTd">2</td><td colspan="1" class="confluenceTd">3</td><td colspan="1" class="confluenceTd">4</td></tr></tbody></table></div>'

df1

      Run              Date          Version          Model  OverallPrec  OverallRec  PersonPrec  Personrec  AnimalF1  VehicleF1
0  PR-191  15,3/12/19,15:30  1.2.191_abcdefg  rfcn_dcn_0221         0.95        0.95        0.98       0.93      0.85       0.85

df2

   Col1  Col2  Col3  Col4
0     1     2     3     4

我想向df2追加新行

df2.loc[len(bdf)] = [2,3,4,5]

,然后将其转换回html以进行发布。 df2.to_html不起作用,因为它缺少<div>class和许多其他标签

df2.to_html(classes='confluenceTh')
'<table border="1" class="dataframe confluenceTh">\n  <thead>\n    <tr style="text-align: right;">\n      <th></th>\n      <th>Col1</th>\n      <th>Col2</th>\n      <th>Col3</th>\n      <th>Col4</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>1</td>\n      <td>2</td>\n      <td>3</td>\n      <td>4</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>2</td>\n      <td>3</td>\n      <td>4</td>\n      <td>5</td>\n    </tr>\n  </tbody>\n</table>'

1 个答案:

答案 0 :(得分:1)

在将html作为字符串处理时,一个方便的选择是使用html解析器,例如beautifulsoup。

您可以复制表格行之一进行修改,从而基本上可以跳过手动确保类和其他标记的一致性的情况。

self.entry

话虽如此,很少有人需要在以这种方式进行解析后将其附加到html上,通常来说,在html创建之前/期间,通常可以控制“上游”。因此,我建议将其作为一种选择进行探索,或者在服务器端使用模板,在客户端使用javascript。