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日

相关文章

  • 在Pandas Lambda函数中使用Apply,有多个if语句

    使用Pandas Lambda函数中的apply方法时,可以在Lambda函数中使用多个if语句实现更加复杂的条件筛选和处理。下面介绍Lambda函数中使用apply方法的完整攻略,并给出具体的实例说明。 准备数据 首先,需要准备Pandas DataFrame类型的数据。以一个图书信息表为例,数据如下所示: import pandas as pd df =…

    python-answer 2023年3月27日
    00
  • Pandas 连接合并函数merge()详解

    Pandas连接合并函数merge()详解 在pandas中,merge函数用于将两个数据集按照某些规则合并为一个数据集。本文将详细讲解merge函数的用法和示例。 merge函数的分类 merge有四种连接方式: 内连接(inner join) 左连接(left join) 右连接(right join) 外连接(outer join) merge函数的基…

    python 2023年5月14日
    00
  • 一文搞懂Pandas数据透视的4个函数的使用

    下面就为您详细讲解“一文搞懂Pandas数据透视的4个函数的使用”的完整攻略。 1. 功能介绍 Pandas是一个Python数据分析库,数据透视是其中一个常用的操作。Pandas提供了4个函数来实现数据透视,这4个函数分别是: pivot_table(): 生成透视表 crosstab(): 生成交叉表 melt(): 将宽表转换成长表 stack() &…

    python 2023年5月14日
    00
  • 基于Python实现剪切板实时监控方法解析

    当我们复制一段文本后,剪切板会将其缓存,以便稍后粘贴。但您曾经想过如何实时监控剪切板中的更改吗?这里有一条基于Python实现的剪切板实时监控的攻略。 1. 导入模块 首先,我们需要导入Python的pyperclip和time模块。pyperclip模块提供了访问剪贴板的方法,time模块提供了等待一段时间的方法,以减少CPU的负荷。 import pyp…

    python 2023年5月14日
    00
  • 对python pandas读取剪贴板内容的方法详解

    当我们需要读取剪贴板中的数据时,使用Python Pandas是一个很好的选择。下面是Python Pandas读取剪贴板内容的方法详解: 1. 安装必要的库 在使用Python Pandas来读取剪贴板内容之前,需要安装以下必要的库: pip install pandas pyperclip 其中,pyperclip库是Python中用于访问剪贴板的库。 …

    python 2023年5月14日
    00
  • inplace在Pandas中是什么意思

    在Pandas中,inplace是一个常用的参数,用于决定是否直接更改原始数据。通俗地说,如果inplace=True,则表明函数执行后会更改原始数据,并返回None;如果inplace=False(默认值),则表明函数会返回更改后的新数据,并不会修改原始数据。 具体来说,inplace的使用通常比较适用于处理大量数据时,因为在处理大量数据时,避免在原始数据…

    python-answer 2023年3月27日
    00
  • Pandas 将每个单词的第一个和最后一个字符转换成大写字母

    要将DataFrame中每个单词的第一个和最后一个字符转换成大写字母,可以通过Pandas中的apply方法结合lambda表达式来实现。 首先,需要使用Pandas将数据读取为DataFrame对象,例如: import pandas as pd # 读取数据 data = pd.read_csv("data.csv") 接下来,可以定…

    python-answer 2023年3月27日
    00
  • 将大的Pandas数据框分割成小的数据框列表

    要将大的Pandas数据框分割成小的数据框列表,可以使用Pandas的groupby函数和循环迭代的方式进行操作。 具体步骤如下: 1.首先导入需要使用的库和数据集 import pandas as pd import numpy as np # 导入数据集,本例使用Iris数据集 iris = pd.read_csv(‘https://archive.ic…

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