【问题标题】:How to ignore content within <sup></sup> tags when using pandas.read_html?使用 pandas.read_html 时如何忽略 <sup></sup> 标签中的内容?
【发布时间】:2019-03-10 12:29:18
【问题描述】:

使用pandas.read_html方法时如何忽略&lt;sup&gt;&lt;/sup&gt;中的内容?

表数据&lt;td&gt;12&amp;nbsp;December 2018&lt;sup&gt;1&lt;/sup&gt;&lt;/td&gt; 转换为12 December 20181 的示例。

如何忽略&lt;sup&gt;标签内的内容?

【问题讨论】:

  • 文档明确指出:Expect to do some cleanup after you call this function。所以我会在读取数据后用一些代码解决这些问题。
  • @PankajJoshi 有些人在遇到问题时会想“我知道,我会使用正则表达式”。现在他们有两个问题。 - 杰米扎温斯基

标签: html pandas lxml


【解决方案1】:

Pandas 建议的问题

希望在调用此函数后进行一些清理。

是它删除了标记,因此丢失了进行适当清理所需的信息。

我看到的唯一解决方案是将 HTML 清理为预处理步骤。您可以为此目的使用lxml.html.clean.Cleaner。作为起点,您可以尝试以下方法:

from lxml.html.clean import Cleaner


def clean_html(raw_html):
    cleaner = Cleaner(remove_tags=["sup"])
    return cleaner.clean_html(raw_html).decode("utf-8")

然后在pd.read_html 中使用清理后的HTML。您可能必须使用清理器的其他设置来准确保留/清理您需要的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-19
    • 2016-01-29
    • 2016-06-04
    • 2015-01-22
    • 2020-09-28
    • 1970-01-01
    • 2017-06-01
    相关资源
    最近更新 更多