【Pandas】pandas.read_html详解与实战应用:从HTML文档读取数据
pandas.read_html
是一个非常实用的函数,它能够从HTML文件或者网页字符串中解析出表格数据,并将其转换为pandas
DataFrame对象。
函数原型:
pandas.read_html(io, match='.+', flavor=None, header=None, index_col=None, skiprows=None, attrs=None, parse_dates=False, thousands=', ', encoding=None, converters=None, na_values=None, keep_default_na=True, displayed_only=True)
参数说明:
io
: 网页的URL、文件路径或者网页内容字符串。match
: 正则表达式,用来匹配特定的表格。flavor
: 解析器的名称,例如'lxml'、'bs4'、'html5lib'。header
: 表头的行数(从0开始),如果没有表头,设置为None。index_col
: 用作索引的列编号或列名。skiprows
: 需要忽略的行数(从0开始),可以是单个数字或数字列表。attrs
: 解析表格时用到的属性。parse_dates
: 是否解析日期。thousands
: 千分位分隔符。encoding
: 指定字符编码。converters
: 列转换器。na_values
: 缺失值标识。keep_default_na
: 是否保留默认的缺失值标识。displayed_only
: 是否仅解析显示的表格。
实例代码:
import pandas as pd
# 从网页URL读取数据
urls = 'https://example.com/table.html'
df_list = pd.read_html(urls)
# 从本地HTML文件读取数据
file_path = 'table.html'
df_list = pd.read_html(file_path)
# 读取特定的表格,通过match参数
df_list = pd.read_html(urls, match='特定表格的标题')
# 指定表头行数和索引列
df_list = pd.read_html(urls, header=0, index_col=0)
# 指定特定属性的表格
df_list = pd.read_html(urls, attrs={'id': 'table_id'})
# 输出第一个DataFrame
print(df_list[0])
注意:read_html
返回的是一个包含DataFrame
列表的列表,即使在大多数情况下只有一个表格。如果你知道你想要的表格,可以通过索引访问它。如果不确定,可以遍历这个列表来查看每个DataFrame
。
评论已关闭