首页 前端知识 【Pandas】pandas.read_html详解与实战应用:从HTML文档读取数据

【Pandas】pandas.read_html详解与实战应用:从HTML文档读取数据

2024-09-14 23:09:07 前端知识 前端哥 678 658 我要收藏

在数据分析与科学中,HTML(超文本标记语言)是网络上广泛使用的数据展示格式。Pandas 提供了 read_html 函数,使你能够方便地从 HTML 文档中读取表格数据并转换为 DataFrame。这篇博客将详细讲解 read_html 方法,包括其作用、使用方法、参数详解、示例代码以及注意事项。


🧑 博主简介:现任阿里巴巴嵌入式技术专家,15年工作经验,深耕嵌入式+人工智能领域,精通嵌入式领域开发、技术管理、简历招聘面试。CSDN优质创作者,提供产品测评、学习辅导、简历面试辅导、毕设辅导、项目开发、C/C++/Java/Python/Linux/AI等方面的服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:gylzbk

💬 博主粉丝群介绍:① 群内初中生、高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 进群赠送CSDN评论防封脚本,送真活跃粉丝,助你提升文章热度。有兴趣的加文末联系方式,备注自己的CSDN昵称,拉你进群,互相学习共同进步。

在这里插入图片描述

在这里插入图片描述

【Pandas】pandas.read_html详解与实战应用:从HTML文档读取数据

  • 1.简介 📘
  • 2.什么是read_html 📋
  • 3.为什么使用read_html 🤔
  • 4.read_html 方法详解 🔍
    • 4.1方法签名 🖊️
    • 4.2参数解释 📝
    • 4.3返回值 📤
    • 4.4 示例代码 👨‍💻
      • 4.4.1 从 URL 读取 HTML 表格 💾
      • 4.4.2 从 HTML 文件读取表格 📂
  • 4.5 进阶使用 🚀
      • 4.5.1 使用正则表达式匹配特定表格 💨
      • 4.5.2 使用特定的解析引擎 🌐
      • 4.5.3 解析过滤特定属性的表格 🗃️
  • 5. 注意事项 ⚠️
  • 6. 参考资料 📚
  • 7.结论 🏁

1.简介 📘

在数据分析与科学中,HTML(超文本标记语言)是网络上广泛使用的数据展示格式。Pandas 提供了 read_html 函数,使你能够方便地从 HTML 文档中读取表格数据并转换为 DataFrame。这篇博客将详细讲解 read_html 方法,包括其作用、使用方法、参数详解、示例代码以及注意事项。

2.什么是read_html 📋

read_html 是 Pandas 提供的一个函数,用于从 HTML 文档中读取表格,并将其转换为 DataFrames。它可以处理本地 HTML 文件、URL 和 HTML 字符串。

3.为什么使用read_html 🤔

read_html 函数有以下几个优点:

  1. 便捷性:可以轻松从 HTML 文档中读取表格,无需复杂的解析和转换。
  2. 灵活性:支持多种 HTML 数据来源(文件、字符串、URL),并提供丰富的参数自定义解析行为。
  3. 高效性:解析速度快,能够自动处理大多数 HTML 表格。

4.read_html 方法详解 🔍

4.1方法签名 🖊️

pandas.read_html(io, match='.+', flavor=None, header=None, index_col=None, skiprows=None, attrs=None, parse_dates=False, thousands=None, encoding=None, decimal='.', converters=None, na_values=None, keep_default_na=True, displayed_only=True)

4.2参数解释 📝

  • io: 类型:str, path object, file-like object 或包含 HTML 的字符串。说明:HTML 数据来源,可以是 URL、文件路径、类文件对象或 HTML 字符串。

  • match: 类型:str 或 None,默认 ‘.+’。说明:正则表达式,用于匹配特定的表格。

  • flavor: 类型:str 或 None,默认 None。说明:解析 HTML 的库(选项有 ‘bs4’ 或 ‘lxml’)。

  • header: 类型:int 或 list of int,默认 None。说明:指定行号作为列名称,如果没有则设为 None。

  • index_col: 类型:int、str 或 sequence of int / str,默认 None。说明:指定那一列作为行标签。

  • skiprows: 类型:list-like, int 或 callable,默认 None。说明:忽略指定的行开始读取数据。

  • attrs: 类型:dict 或 None,默认 None。说明:用于过滤具有特定 HTML 属性的表格。

  • parse_dates: 类型:bool 或 list of int 或 names,默认 False。说明:解析日期字段。

  • thousands: 类型:str 或 None,默认 None。说明:千位分隔符。

  • encoding: 类型:str 或 None,默认 None。说明:指定文件编码。

  • decimal: 类型:str,默认 ‘.’。说明:小数分隔符。

  • converters: 类型:dict,默认 None。说明:为列指定转换函数。

  • na_values: 类型:scalar, str, list-like, 或 dict,默认 None。说明:指定需要替换为 NaN 的字符串。

  • keep_default_na: 类型:bool,默认 True。说明:是否使用默认的缺失值标记。

  • displayed_only: 类型:bool,默认 True。说明:如果为 True,只解析目前在页面上被显示的表格。

4.3返回值 📤

返回值类型:list of DataFrame

返回一个包含从 HTML 读取的每个表格的 DataFrame 列表。

4.4 示例代码 👨‍💻

4.4.1 从 URL 读取 HTML 表格 💾

首先,我们从一个 URL 中读取 HTML 表格数据。

import pandas as pd

# 从 URL 读取 HTML 表格数据
url = 'https://example.com/data.html'
tables = pd.read_html(url)

# 查看第一个表格
print("从 URL 读取的第一个表格:\n", tables[0])

4.4.2 从 HTML 文件读取表格 📂

接下来,我们从一个本地的 HTML 文件中读取表格数据。

# 从本地 HTML 文件读取表格数据
tables = pd.read_html('data.html')

# 查看第一个表格
print("从本地 HTML 文件读取的第一个表格:\n", tables[0])

4.5 进阶使用 🚀

4.5.1 使用正则表达式匹配特定表格 💨

我们可以使用正则表达式匹配特定的表格。

# 从 URL 中读取匹配指定正则表达式的表格
regex = 'Population.*'
tables = pd.read_html(url, match=regex)

# 查看匹配的表格
print("匹配指定正则表达式的表格:\n", tables[0])

4.5.2 使用特定的解析引擎 🌐

我们可以指定所使用的解析引擎,如’bs4’或’lxml’。

# 使用 'lxml' 解析引擎读取 HTML 表格数据
tables = pd.read_html('data.html', flavor='lxml')

# 查看第一个表格
print("使用 'lxml' 解析引擎读取的第一个表格:\n", tables[0])

4.5.3 解析过滤特定属性的表格 🗃️

我们也可以解析仅匹配特定 HTML 属性的表格。

# 解析具有特定属性的表格
attrs = {'class': 'wikitable'}
tables = pd.read_html('data.html', attrs=attrs)

# 查看第一个表格
print("具有指定属性的表格:\n", tables[0])

5. 注意事项 ⚠️

  1. 数据一致性:HTML 表格可能未严格遵循结构标准,因此在解析时需要确保数据的一致性和完整性。
  2. 解析库选择:选择合适的解析库(如 ‘bs4’ 或 ‘lxml’)来提高解析性能和准确性。
  3. 复杂页面:对于包含复杂或动态生成内容的 HTML 页面,可能需要进行额外的预处理或使用特定库(如 Selenium)来获取 HTML 内容。

6. 参考资料 📚

  • Pandas 官方文档—read_html
  • Pandas 官方文档—IO 工具

7.结论 🏁

Pandas 的 read_html 方法是一个强大而灵活的工具,能高效地从 HTML 文档中读取表格数据并转换为 DataFrame。通过本文的详细讲解和示例,相信你已经掌握了 read_html 方法的基础使用方法和进阶技巧。

转载请注明出处或者链接地址:https://www.qianduange.cn//article/18322.html
标签
pandas
评论
会员中心 联系我 留言建议 回顶部
复制成功!