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, 可选
用于解码网页的编码。默认为
None
。None
保留了之前的编码行为,这取决于底层解析器库(例如,解析器库将尝试使用文档提供的编码)。- 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
的后端数据类型(仍在实验中)。如果未指定,默认行为是不使用可空数据类型。如果指定,行为如下:"numpy_nullable"
: 返回支持可空数据类型的DataFrame
"pyarrow"
: 返回支持 pyarrow 的可空ArrowDtype
DataFrame
Added in version 2.0.
- storage_optionsdict, 可选
对于特定存储连接有意义的额外选项,例如主机、端口、用户名、密码等。对于HTTP(S) URL,键值对被转发到
urllib.request.Request
作为头部选项。对于其他URL(例如以“s3://”和“gcs://”开头),键值对被转发到fsspec.open
。请参阅fsspec
和urllib
了解更多详情,关于存储选项的更多示例请参考 这里。Added in version 2.1.0.
- 返回:
- dfs
一系列 DataFrame。
参见
read_csv
将逗号分隔值(csv)文件读取到 DataFrame 中。
备注
在使用此功能之前,您应该阅读关于 HTML 解析库的 注意事项。
在调用此函数后,预计需要进行一些清理工作。例如,如果你传递 header=0 参数时列名被转换为 NaN,你可能需要手动分配列名。我们尽量不对表格的结构做任何假设,并将表格中包含的 HTML 的特殊性推给用户处理。
此函数搜索
<table>
元素,并且仅搜索<tr>
和<th>
行以及每个<tr>
或<th>
元素中的<td>
元素。<td>
代表“表格数据”。此函数尝试正确处理colspan
和rowspan
属性。如果函数有一个<thead>
参数,则用于构建表头,否则函数尝试在主体中找到表头(通过将仅包含<th>
元素的行放入表头中)。类似于
read_csv()
,header 参数是在 skiprows 参数**之后**应用的。这个函数将 总是 返回一个
DataFrame
的列表 或者 它会失败,即,它 不会 返回一个空列表,除了一些罕见的情况。在输入只有一行且<td>
只包含空白的情况下,它可能会返回一个空列表。例子
请参阅文档 IO 部分中的 read_html 文档 ,以获取一些读取 HTML 表格的示例。