pandas.read_html#

pandas.read_html(io, *, match='.+', flavor=None, header=None, index_col=None, skiprows=None, attrs=None, parse_dates=False, thousands=',', encoding=None, decimal='.', converters=None, na_values=None, keep_default_na=True, displayed_only=True, extract_links=None, dtype_backend=_NoDefault.no_default, storage_options=None)[源代码]#

将 HTML 表格读取到 DataFrame 对象的 list 中。

Parameters:
io字符串、路径对象或文件类对象

字符串、路径对象(实现 os.PathLike[str])或实现字符串 read() 函数的类文件对象。该字符串可以表示 URL 或 HTML 本身。请注意,lxml 仅接受 http、ftp 和 file URL 协议。如果您有一个以 'https' 开头的 URL,您可以尝试删除 's'

自 2.1.0 版本弃用: 传递 HTML 字面量字符串已被弃用。请用 io.StringIO/io.BytesIO 包装字面量字符串/字节输入。

matchstr 或编译后的正则表达式,可选

将返回包含匹配此正则表达式或字符串的文本的表格集合。除非 HTML 非常简单,否则您很可能需要在此处传递一个非空字符串。默认为 ‘.+’(匹配任何非空字符串)。默认值将返回页面上包含的所有表格。此值已被转换为正则表达式,以便在 Beautiful Soup 和 lxml 之间保持行为一致。

flavor{“lxml”, “html5lib”, “bs4”} 或类列表,可选

要使用的解析引擎(或解析引擎列表)。’bs4’ 和 ‘html5lib’ 是同义词,它们都存在以实现向后兼容。默认的 None 尝试使用 lxml 进行解析,如果失败则回退到 bs4 + html5lib

headerint 或类列表,可选

用于创建列标题的行(或用于 MultiIndex 的行列表)。

index_colint 或类列表,可选

用于创建索引的列(或列列表)。

skiprowsint、类列表或切片,可选

解析列整数后要跳过的行数。从 0 开始计数。如果给定整数序列或切片,将跳过该序列索引的行。请注意,单个元素的序列表示“跳过第 n 行”,而整数表示“跳过 n 行”。

attrsdict, 可选

这是一个属性字典,您可以传递它来识别 HTML 中的表格。在传递给 lxml 或 Beautiful Soup 之前,不会对其进行有效性检查。但是,这些属性必须是有效的 HTML 表格属性才能正常工作。例如:

attrs = {'id': 'table'}

是一个有效的属性字典,因为根据 this document ,’id’ HTML 标签属性是 任何 HTML 标签的有效 HTML 属性。

attrs = {'asdf': 'table'}

不是 一个有效的属性字典,因为 ‘asdf’ 不是有效的 HTML 属性,即使它是有效的 XML 属性。有效的 HTML 4.01 表格属性可以在 here 找到。 HTML 5 规范的工作草案可以在 here 找到。它包含关于现代 Web 表格属性的最新信息。

parse_datesbool, optional

有关更多详细信息,请参阅 read_csv()

thousandsbool, default False

用于解析千位数的间隔符。默认为 ','

encodingbool, default False

用于解码网页的编码。默认为 NoneNone 保留之前的编码行为,这取决于底层解析库(例如,解析库会尝试使用文档提供的编码)。

decimalstr, 默认为 ‘.’

用于将小数点标识为十进制点的字符(例如,欧洲数据请使用 ‘,’)。

convertersdict, 默认为 None

用于转换特定列中值的函数字典。键可以是整数或列标签,值是接受一个输入参数(单元格(非列)内容)并返回转换后内容的函数。

na_values可迭代对象, 默认 None

自定义 NA 值。

keep_default_nabool, default True

如果指定了 na_values 且 keep_default_na 为 False,则会覆盖默认的 NaN 值,否则将追加到现有值之后。

displayed_onlybool, default True

是否解析具有“display: none”样式的元素。

extract_links{None, “all”, “header”, “body”, “footer”}

指定部分中的带有 <a> 标签的表格元素将会提取其 href 属性。

在 1.5.0 版本加入.

dtype_backend{‘numpy_nullable’, ‘pyarrow’}, 默认 ‘numpy_nullable’

应用于结果 DataFrame 的后端数据类型(仍处于实验阶段)。行为如下:

  • "numpy_nullable":返回支持可空 dtype 的 DataFrame (默认)。

  • "pyarrow":返回 pyarrow 支持的可空 ArrowDtype DataFrame。

在 2.0 版本加入.

storage_optionsdict, 可选

适用于特定存储连接的额外选项,例如主机、端口、用户名、密码等。对于 HTTP(S) URL,键值对将作为标头选项转发给 urllib.request.Request。对于其他 URL(例如,以 “s3://”, 和 “gcs://” 开头的 URL),键值对将转发给 fsspec.open。更多详情请参阅 fsspecurllib,有关存储选项的更多示例,请参阅 here

在 2.1.0 版本加入.

Returns:
dfs

DataFrame 列表。

参见

read_csv

将逗号分隔值 (csv) 文件读取到 DataFrame 中。

Notes

在使用此函数之前,您应该阅读 gotchas about the HTML parsing libraries

在调用此函数后,预计需要进行一些清理工作。例如,当您传递 header=0 参数时,列名可能会被转换为 NaN,此时您可能需要手动指定列名。我们尽量不对表格的结构做过多假设,并将表格中 HTML 的特殊之处推给用户处理。

此函数会查找 <table> 元素,并且仅查找每个 <tr><th> 元素内的 <tr><th> 行以及 <td> 元素。“<td>”代表“表格数据”。此函数尝试正确处理 colspanrowspan 属性。如果函数有一个 <thead> 参数,它将用于构建表头,否则函数会尝试在表体中查找表头(通过将仅包含 <th> 元素的行放入表头)。

read_csv() 类似,header 参数是在 skiprows 应用 之后 应用的。

此函数将 始终 返回一个 DataFrame 列表,否则 会失败,例如,它*不会*返回一个空列表。

Examples

有关读取 HTML 表格的一些示例,请参阅文档 IO 部分的 read_html documentation in the IO section of the docs