从通过 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() 创建的任何东西吗? 边框的值是这样硬编码的,这有点令人惊讶。 @HimanshuGuptadf.to_html()
返回一个unicode
对象,所以你可以使用find
、replace
、strip
、upper
、lower
,就像你使用字符串一样并替换你想要的任何东西。【参考方案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 表中删除边框的主要内容,如果未能解决你的问题,请参考以下文章