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)源代码、
将HTML表读入DataFrame
对象列表。
参数: | io: URL、类似文件的对象或包含HTML的原始字符串。 注意, 如果你有一个以 可以尝试删除 match: 将返回包含与此正则表达式或字符串匹配的文本的表集。 除非HTML非常简单,否则可能需要在这里传递一个非空字符串。 默认为 默认值将返回页面中包含的所有表。 这个值被转换为一个正则表达式, 以便在Beautiful Soup和lxml之间有一致的行为。 flavor: 要使用的解析引擎。 ' bs4 '和' html5lib '是彼此是同义的, 它们都是为了向后兼容。
如果失败,则返回 header: 用于使列成为标题的行(或MultiIndex的行列表)。 index_col: 用于创建索引的列(或列的列表)。 skiprows: 解析列整数后要跳过的行数。基于 如果给定了一个整数序列或一个切片, 则将跳过由该序列索引的行。 注意,单个元素序列表示“跳过第 而整数表示“跳过 attrs:
在传递给lxml或Beautiful Soup之前, 不会检查它们的有效性。 但是,这些属性必须是有效的HTML表属性才能正常工作。 例如,
是一个有效的属性字典, 因为 依据文档任何HTML标签的有效HTML属性。
不是一个有效的属性字典, 因为 即使它是一个有效的XML属性。 在这里可以找到有效的HTML 4.01表属性。 HTML 5规范的工作草案可以在这里找到。 它包含了关于现代网络的表属性的最新信息。 parse_dates: 详情请参阅read_csv()。 thousands: 分隔符用来解析千位。默认为 encoding: 用来解码网页的编码。默认为
这取决于底层解析器库(例如, 解析器库将尝试使用文档提供的编码)。 decimal: 可识别为小数点的字符(例如,使用 ‘,’ 表示欧洲数据)。 converters: 函数的字典,用于转换某些列中的值。 key可以是整数或列标签, value是接受一个输入参数、单元格(不是列) 内容并返回转换后的内容的函数。 na_values: 自定义 keep_default_na: 如果指定了 则默认的 displayed_only: 是否应该解析带有" |
返回: | dfs DataFrame的列表。 |
Notes
在使用此函数之前,应该了解关于HTML解析库的一些问题。
在调用这个函数之后,希望做一些清理工作。例如,如果在传递header=0
参数时将列名转换为NaN
,则可能需要手动分配列名。尽可能少地假设表的结构,并将表中包含的HTML特性推送给用户。
这个函数搜索<table>
元素,并且只搜索表中每个<tr>
或<th>
元素中的<tr>
和<th>
行和<td>
元素。<td>
表示“表数据”。此函数试图正确处理 colspan
和rowspan
属性。如果函数有一个<thead>
参数,它将被用于构造header,否则函数将尝试在体中查找header(通过将只有<th>
元素的行放入header中)。
与read_csv()
类似,header参数是在应用skiprows之后应用的。
这个函数将总是返回一个DataFrame
列表,否则它将失败,例如,它将不会返回一个空列表。
例如,
import pandas as pd
url = (
"https://raw.githubusercontent.com/pandas-dev/pandas/master/"
"pandas/tests/io/data/html/spam.html"
)
dfs = pd.read_html(url)
print(dfs)