如何从 pandas DataFrame 输出包含合并单元格的 HTML 表格

5

我有一个名为df的pandas.DataFrame,如下:

>>> df = pd.DataFrame([[1,2,2,2,3], [1,2,3,3,3],[1,3,2,3,5],[7,9,9,3,2]], columns=list("ABCDE"))

dataframe presented as table

我希望能够在HTML中实现这种类型的表格(可以控制哪些单元格可以合并) dataframe presented as table after merge 我知道可以通过操作从df.to_html()函数获得的表格,并使用jquery来扩展行跨度来实现,但我想问的是,是否有可能直接从某种数据透视表/数据框架中直接获取合并后的表格的Pythonic方法。
我考虑过将要合并的列暂时设置为多级索引数据框架中的索引,但是这种方法...粗糙,至少可以这么说。
如果我完全控制哪些单元格可以合并,基于同一行中其他单元格的值,那就太完美了。

我想不到任何明显的方法来做这件事。如果你运行 df.set_index(list('ABCDE')).to_html('test.html'),你会发现合并对于索引单元格是存在的(但只有在左侧的所有内容也匹配的情况下)。我提到这个不是因为它解决了你的问题,而是也许如果你想看一下 to_html 源代码,你可以找到负责在索引输出中合并相似单元格的代码,并将其调整以适应你的需求。 - sjw
1个回答

3

更新:我已经找到了一个类似的问题,有一个详尽的答案(请参见jpp的答案),但不幸的是否定了解决我的问题的简单方法。正如silkworm所建议的那样,现在唯一的可能性是深入研究to_html源代码,或者对数据框进行多级索引处理。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接