从通过 pandas 创建的 html 表中删除边框

Posted

技术标签:

【中文标题】从通过 pandas 创建的 html 表中删除边框【英文标题】:Remove border from html table created via pandas 【发布时间】:2015-08-12 10:13:35 【问题描述】:

我正在使用 python 脚本在网页上显示数据框。我使用df.to_html 将我的数据框转换为 HTML。但是,默认情况下,它会将边框设置为 0。我尝试使用自定义 css 模板覆盖它,但它不起作用。

这是我的熊猫代码:

ricSubscription.to_html(classes='mf')

在进行此调用时,我可以传递一个参数来将边框设置为零吗?

【问题讨论】:

似乎没有,您可以解析 html 并替换 border 值,但这确实感觉乏味 谷歌的 CSS 覆盖。这应该可以帮助你。 【参考方案1】:

to_html() 生成<table border="1" class="dataframe">...

你可以这样做:

ricSubscription.to_html().replace('border="1"','border="0"')

另外,要具体回答,似乎没有什么可以通过的。 border="1" 似乎是硬编码的:

https://github.com/pydata/pandas/blob/e4cb0f8a6cbb5f0c89b24783baa44326e4b2cccb/pandas/core/format.py#L893

【讨论】:

这很完美!谢谢! replace 方法可以用来替换 to_html() 创建的任何东西吗? 边框的值是这样硬编码的,这有点令人惊讶。 @HimanshuGupta df.to_html() 返回一个unicode 对象,所以你可以使用findreplacestripupperlower,就像你使用字符串一样并替换你想要的任何东西。【参考方案2】:

从 0.19.0 版本开始,pandas to_html() 的边框可以通过两种方式进行更改:

    全球:pd.options.html.border = 0 本地:to_html(border = 0)

2019 年 7 月 11 日更新:

根据@Hagbard 的评论,我原来的全局解决方案已被弃用,取而代之的是: pd.options.display.html.border = 0

文档:https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_html.html

【讨论】:

使用您对全局设置的回答,我收到以下警告:“html.border 已被弃用,请改用 display.html.border(目前两者相同)”。因此,“pd.options.display.html.border = 0”从现在开始就可以解决问题了。 @Hagbard - 如果您想发布新版本的答案,请这样做。否则,我会用新版本更新我的。谢谢。 如果你更新你的答案对我来说很好。谢谢你。 :)【参考方案3】:

如果您愿意,请使用pd.Styler。你可以这样做:

ricSubscription.style.set_table_attributes(
    'style="border-collapse:collapse"'
).set_table_styles([
    # Rest of styles
]).render()

【讨论】:

以上是关于从通过 pandas 创建的 html 表中删除边框的主要内容,如果未能解决你的问题,请参考以下文章

spring thymeleaf - 从 html 表中删除对象并将 id 传递给控制器

Pandas Dataframe 到 HTML 删除索引

SQL 表中记录的唯一组合(从节点表中获取边)

使用 Pandas 从多索引表中绘制特定列

如何从图中删除顶点并在其邻居之间创建边?

Pandas 从数据透视表中绘图