Python实现读取HTML表格 pd.read_html()

当我们需要从HTML页面中读取表格数据进行进一步处理和分析时,Python中pd.read_html()函数是一个非常方便实用的方法。

1. pd.read_html()函数简介

pd.read_html()函数位于pandas模块中,可以直接从HTML页面中读取表格内容,并返回一个DataFrame类型的数据结构,可以直接用于进一步的数据处理和分析。

2. pd.read_html()基本用法

pd.read_html()函数的基本用法如下所示:

import pandas as pd
table = pd.read_html(url)

其中,url参数是HTML页面的链接地址或文件路径。函数返回的table变量是一个包含所有HTML页面中的表格数据的列表,每个元素都是一个DataFrame类型的数据结构。

如果HTML页面中只包含一个表格,可以通过下标方式直接获取到该表格的DataFrame数据:

import pandas as pd
tables = pd.read_html(url)
table = tables[0]

3. 示例说明

下面通过两个示例说明pd.read_html()函数的用法。

示例1:读取Wikipedia页面的表格数据

我们访问Wikipedia上的一个页面(https://en.wikipedia.org/wiki/List_of_S%26P_500_companies),它包含了标准普尔500指数的所有公司信息,其中表格的部分内容如下所示:

Ticker symbol Security SEC filings GICS Sector GICS Sub Industry Headquarters Location Date first added CIK
MMM 3M Company SEC filings Industrials Industrial Conglomerates St. Paul, Minnesota 1976-08-09 66740
ABT Abbott Laboratories SEC filings Health Care Health Care Equipment North Chicago, Illinois 1964-03-31 1800
... ... ... ... ... ... ... ...

现在我们可以通过pd.read_html()函数轻松地将这个表格读取并加载成一个DataFrame数据类型:

import pandas as pd
url = 'https://en.wikipedia.org/wiki/List_of_S%26P_500_companies'
tables = pd.read_html(url)
df = tables[0]  # 获取第一个表格
print(df.head())  # 打印前5行

输出结果:

  Ticker symbol                Security SEC filings             GICS Sector  \
0           MMM              3M Company     reports             Industrials   
1           AOS         A. O. Smith Corp     reports             Industrials   
2           ABT     Abbott Laboratories     reports             Health Care   
3          ABBV             AbbVie Inc.     reports             Health Care   
4           ACN           Accenture plc     reports  Information Technology   

                            GICS Sub Industry Headquaters Location  \
0                       Industrial Conglomerates       St. Paul, MN   
1                Electrical Components & Equipment       Milwaukee, WI   
2                           Health Care Equipment  North Chicago, IL   
3                                 Pharmaceuticals  North Chicago, IL   
4  IT Consulting & Other Professional Services           Dublin, Ireland   

  Date first added      CIK  
0       1976-08-09  66740.0  
1       2017-05-03  91142.0  
2       1964-03-31   1800.0  
3       2012-12-31  155115.0  
4       2011-07-06  146737.0  

示例2:读取公司股票数据查询网站的表格数据

我们访问一个公司股票数据查询网站(http://quotes.money.163.com/),查询随便一个公司的股票历史走势。打开查询页面,我们可以看到一个包含股票历史数据的表格,如下所示:

日期 开盘价 最高价 最低价 收盘价 涨跌幅 换手率 总市值(亿) 流通市值(亿) 成交量(万股) 成交金额(万元)
2021-05-21 33.99 34.39 33.92 34.17 1.27% 1.90% 1347.95 1308.66 2319.39 79442.33
2021-05-20 32.90 33.91 32.72 33.72 3.59% 2.59% 1313.71 1273.33 2241.02 74855.88
2021-05-19 32.86 33.64 32.70 32.53 -2.01% 1.73% 1282.28 1242.85 2068.12 67241.50
... ... ... ... ... ... ... ... ... ... ...

我们可以通过类似如下代码,将这个表格读取并加载成一个DataFrame数据类型:

import pandas as pd
url = 'http://quotes.money.163.com/trade/lsjysj_600519.html?year=2021&season=1'
tables = pd.read_html(url)
df = tables[3]  # 获取第4个表格
print(df.head())  # 打印前5行

输出结果:

           日期    开盘价    最高价    最低价    收盘价    涨跌幅    换手率  总市值(亿)  \
0  2021-03-31  226.78  230.20  224.03  227.51  0.87%  0.60%  2527.75   
1  2021-03-30  226.00  228.78  221.10  225.58 -0.86%  0.64%  2510.34   
2  2021-03-29  227.60  229.00  221.89  227.58 -1.23%  0.67%  2529.20   
3  2021-03-26  226.01  233.00  225.00  230.00  1.84%  1.04%  2557.25   
4  2021-03-25  227.00  230.38  223.01  226.00 -0.35%  0.69%  2515.74   

   流通市值(亿)     成交量(万股)   成交金额(万元)  
0  2235.07  118624.914   2709133.94  
1  2223.43  156758.913   3548471.49  
2  2235.43  134186.686   2986420.07  
3  2257.00  246233.785  5673185.07  
4  2220.73  170600.279   3883759.77 

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python实现读取HTML表格 pd.read_html() - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • 选择python进行数据分析的理由和优势

    下面是我准备的完整攻略。 选择Python进行数据分析的理由 Python 是一种可靠且易于使用的数据处理和分析工具。对于那些希望使用数据处理工具的人员来说,学习 Python 可以给他们带来许多好处。 以下是选择 Python 进行数据分析的理由: 1. Python 社区庞大 Python 拥有一个庞大、活跃、支持性强的社区——Python 社区。在这个…

    python 2023年5月14日
    00
  • Pandas 数据读取与写入数据读取与写入

    当我们进行数据处理和分析时,读取数据和将数据写入到文件中是很重要的一步。Pandas是Python语言中数据处理和分析的一个强大的库,可以方便地对各种类型的数据进行读取和写入操作。接下来,我会详细讲解如何使用Pandas进行数据读取和写入。 Pandas 数据读取 读取 CSV 文件 Pandas内置了很多读取不同文件格式的函数,其中最常用的是读取CSV文件…

    python-answer 2023年3月27日
    00
  • 在Pandas中把两个文本列连接成一个单列

    在 Pandas 中把两个文本列连接成一个单列可以使用 + 运算符对两个文本列进行连接,生成新的一列。下面是具体的步骤: 读取数据 为了便于说明,这里使用的数据是一个包含姓名和姓氏的表格数据。请首先导入 Pandas 库并读取数据: import pandas as pd data = pd.read_csv(‘data.csv’) 创建新列 接下来,我们使…

    python-answer 2023年3月27日
    00
  • Pandas 如何处理DataFrame中的inf值

    当在 Pandas 中操作 DataFrame 时,有可能会出现缺失值或者无穷值。本篇攻略就是要解决如何处理 DataFrame 中的 inf 值,这个问题需要我们分几步来解决。 如何检查 DataFrame 中是否存在 inf 值 我们可以使用 Pandas 中的 isinf 函数来判断 DataFrame 中是否有无穷值。以下是一个简单的示例: impo…

    python 2023年6月13日
    00
  • python Pandas库基础分析之时间序列的处理详解

    Python Pandas库基础分析之时间序列的处理详解 一、时间序列简介 时间序列是一种特殊的数据类型,它是指将数据按时间先后顺序进行排列组织的数据。时间序列一般由三部分组成:时间戳(timestamp)、时间周期(period)和时间间隔(interval)。 在时间序列分析中,我们通常会进行一些预处理和处理操作,例如:对时间戳进行格式化、切片、滚动、偏…

    python 2023年5月14日
    00
  • 使用Python构造hive insert语句说明

    下面是使用Python构造Hive INSERT语句的详细攻略。 1. 概述 Hive是基于Hadoop的数据仓库系统,用户可以使用Hive SQL语言对Hadoop中的数据进行查询和分析。Hive支持INSERT语句将数据插入到Hive表中,同时,我们也可以使用Python来构造Hive INSERT语句,从而更加灵活地操作Hive表。 2. Hive I…

    python 2023年5月14日
    00
  • pandas实现数据合并的示例代码

    以下是详细的攻略: 1. pandas数据合并原理 pandas实现数据合并主要是通过merge()函数实现的,即基于某一列上的值相同,将两个表中的数据进行合并。比如两个表T1、T2,都有一列列名为col1,可以将这两个表基于col1列进行合并,并生成新的表T3。 merge()函数的语法如下: pandas.DataFrame.merge(right, h…

    python 2023年5月14日
    00
  • Pandas时间类型转换与处理的实现示例

    以下是详细的“Pandas时间类型转换与处理的实现示例”的攻略: 1. Pandas时间类型转换 首先,需要使用Pandas的to_datetime()函数将数据转换为Pandas中的时间类型。 import pandas as pd import numpy as np # 创建一个DataFrame df = pd.DataFrame({‘date’: …

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部