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

yizhihongxing

当我们需要从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日

相关文章

  • Pandas处理时间序列数据操作详解

    当我们在处理数据时,其中常常会涉及到时间序列数据。而Pandas是Python中非常强大的数据分析工具,也非常适合处理时间序列数据。接下来将为你详细讲解Pandas处理时间序列数据操作的完整攻略。 一、导入Pandas和时间序列数据 在使用Pandas进行时间序列数据处理之前,我们需要先导入Pandas库。可以使用以下代码实现: import pandas …

    python 2023年5月14日
    00
  • Pandas Cut–从连续到分类

    下面我就来详细讲解一下Pandas Cut的使用。 什么是Pandas Cut Pandas Cut是一种将连续数据转换为分类数据的函数。它可将连续的数值数据分段,每一段转化为一个离散的分类,同时可以对这些离散的分类进行标记和排序。 Cut函数的语法 Pandas Cut函数的语法如下: pandas.cut(x, bins, right=True, lab…

    python-answer 2023年3月27日
    00
  • python中DataFrame数据合并merge()和concat()方法详解

    Python中DataFrame数据合并Merge()和concat()方法详解 在数据分析中,经常需要将多个数据源中的数据合并到一起,这就需要涉及到数据合并的相关操作。Python中Pandas库提供了两个主要的方法可以用于数据合并:merge()和concat()。 Merge()方法详解 merge()方法可以将多个数据集(DataFrame)按照一些…

    python 2023年5月14日
    00
  • Pandas 模糊查询与替换的操作

    Pandas是一个功能强大的Python数据分析库,用于处理和分析数据,提供了大量的数据操作、数据分析和数据可视化的功能。在数据分析中,经常需要进行模糊查询与替换的操作,这篇文章将详细介绍Pandas模糊查询与替换的操作攻略,包括以下内容: Pandas 模糊查询的操作方式: 使用 Pandas 进行模糊查询可以使用字符串的 str 方法,包括str.mat…

    python 2023年5月14日
    00
  • Python使用Pandas库实现MySQL数据库的读写

    Python使用Pandas库实现MySQL数据库的读写 1. 安装所需的库 在使用Python来实现MySQL数据库的读、写操作之前,需要确保已经安装了以下几个库: Pandas PyMySQL sqlalchemy 可以使用pip命令来安装这些库,命令如下: pip install pandas pip install pymysql pip insta…

    python 2023年5月14日
    00
  • Python Pandas中两个数据框架的交集

    在Pandas中,有几种方法可以计算两个DataFrame对象的交集。 方法一:使用merge()函数 merge()函数是将两个DataFrame对象结合在一起的函数,它可以根据指定的列将两个DataFrame对象合并在一起。 示例: import pandas as pd # 创建df1和df2 DataFrame df1 = pd.DataFrame(…

    python-answer 2023年3月27日
    00
  • Python动态赋值的陷阱知识点总结

    Python动态赋值的陷阱知识点总结 简介 Python作为一种脚本语言,有很多独特的特性,并且在动态赋值方面极其灵活。但是,动态赋值也容易引起一些陷阱,本文将对Python动态赋值中的一些知识点进行总结,并提供示例说明。 Python动态赋值的知识点 1. 动态属性的赋值 Python允许动态地为对象添加属性和方法。使用点号操作符或getattr函数均可动…

    python 2023年5月14日
    00
  • 创建Pandas系列数据的平均值和标准偏差

    要计算Pandas系列数据的平均值和标准偏差,可以使用Pandas库中的mean()和std()函数。下面是创建Pandas系列数据的平均值和标准偏差的完整攻略: 创建Pandas系列数据 首先,需要创建一个Pandas系列数据。可以使用下面的代码创建一个包含随机整数的Pandas系列数据: import pandas as pd import numpy …

    python-answer 2023年3月27日
    00
合作推广
合作推广
分享本页
返回顶部