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=<no_default>, storage_options=None)[源代码][源代码]#

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

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

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

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

匹配字符串或编译的正则表达式,可选

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

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

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

标题整数或类似列表的,可选

用于生成列标题的行(或用于 MultiIndex 的行列表)。

index_col整数或类似列表的,可选

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

skiprowsint, 类列表或切片, 可选

解析列整数后要跳过的行数。基于0。如果给定一个整数序列或切片,将跳过由该序列索引的行。请注意,单个元素序列意味着’跳过第n行’,而整数意味着’跳过n行’。

attrsdict, 可选

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

attrs = {"id": "table"}

是一个有效的属性字典,因为’id’ HTML标签属性是根据 这个文档 对*任何* HTML标签都有效的HTML属性。:

attrs = {"asdf": "table"}

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

parse_datesbool, 可选

查看 read_csv() 获取更多细节。

thousandsstr, 可选

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

编码str, 可选

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

decimalstr, 默认 ‘.’

识别为小数点的字符(例如,使用 ‘,’ 表示欧洲数据)。

转换器字典, 默认为 None

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

na_values可迭代对象,默认为 None

自定义 NA 值。

keep_default_na布尔值, 默认为 True

如果指定了 na_values 并且 keep_default_na 为 False,默认的 NaN 值将被覆盖,否则它们将被附加。

displayed_only布尔值, 默认为 True

是否应解析带有“display: none”的元素。

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

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

Added in version 1.5.0.

dtype_backend{‘numpy_nullable’, ‘pyarrow’}

应用于结果 DataFrame 的后端数据类型(仍在实验中)。如果未指定,默认行为是不使用可空数据类型。如果指定,行为如下:

Added in version 2.0.

storage_optionsdict, 可选

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

Added in version 2.1.0.

返回:
dfs

一系列 DataFrame。

参见

read_csv

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

备注

在使用此功能之前,您应该阅读关于 HTML 解析库的 注意事项

在调用此函数后,预计需要进行一些清理工作。例如,如果你传递 header=0 参数时列名被转换为 NaN,你可能需要手动分配列名。我们尽量不对表格的结构做任何假设,并将表格中包含的 HTML 的特殊性推给用户处理。

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

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

这个函数将 总是 返回一个 DataFrame 的列表 或者 它会失败,即,它 不会 返回一个空列表,除了一些罕见的情况。在输入只有一行且 <td> 只包含空白的情况下,它可能会返回一个空列表。

例子

请参阅文档 IO 部分中的 read_html 文档 ,以获取一些读取 HTML 表格的示例。