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
用于解码网页的编码。默认为
None。None保留之前的编码行为,这取决于底层解析库(例如,解析库会尝试使用文档提供的编码)。- 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 支持的可空ArrowDtypeDataFrame。
在 2.0 版本加入.
- storage_optionsdict, 可选
适用于特定存储连接的额外选项,例如主机、端口、用户名、密码等。对于 HTTP(S) URL,键值对将作为标头选项转发给
urllib.request.Request。对于其他 URL(例如,以 “s3://”, 和 “gcs://” 开头的 URL),键值对将转发给fsspec.open。更多详情请参阅fsspec和urllib,有关存储选项的更多示例,请参阅 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>”代表“表格数据”。此函数尝试正确处理colspan和rowspan属性。如果函数有一个 <thead> 参数,它将用于构建表头,否则函数会尝试在表体中查找表头(通过将仅包含<th>元素的行放入表头)。与
read_csv()类似,header 参数是在 skiprows 应用 之后 应用的。此函数将 始终 返回一个
DataFrame列表,否则 会失败,例如,它*不会*返回一个空列表。Examples
有关读取 HTML 表格的一些示例,请参阅文档 IO 部分的 read_html documentation in the IO section of the docs 。