Pandas read_html函数

Pandas read_html函数

阅读更多:Pandas 教程

在本文中,我们将介绍Pandas Library中的一个重要函数read_html。这个函数可以让你从HTML文件中读取表格数据,并将其变成Pandas DataFrame对象。Pandas DataFrame是一种二维表格数据结构,类似于电子表格软件中的工作表。

read_html的基本语法

Pandas的read_html函数可以从一个HTML文件中读取表格数据。函数的基本语法如下:

import pandas as pd
tables = pd.read_html(url or file)

其中,url是HTML文件的URL地址,file是文件路径。read_html函数会自动解析HTML文件中的表格,将其转换成Pandas DataFrame对象,并返回一个包含DataFrame对象的列表。如果HTML文件中包含多个表格,那么读取结果就是一个列表,列表中的每个元素是一个DataFrame对象。

示例代码

下面是一个示例代码,可以从HTML文件中读取表格数据,并将其打印到控制台:

import pandas as pd

# 从HTML文件中读取表格数据
url = 'http://www.nuforc.org/webreports/ndxevent.html'
tables = pd.read_html(url)

# 打印第一个表格
print(tables[0])

在上面的示例代码中,我们使用了Pandas的read_html函数,从http://www.nuforc.org/webreports/ndxevent.html这个URL地址读取了一个HTML文件中的所有表格。然后,我们打印了第一个表格。

输出的结果如下:

                              Date / Time             City State     Shape  \
0                      12/12/20 19:00          Middleburg    FL     Light   
1                      12/12/20 17:00          Middleburg    FL   Chevrons   
2                      12/12/20 09:30         Rocky Hill    CT       NaN   
3                      12/11/20 18:00             Bangor    ME     Light   
4                      12/11/20 05:20            Buffalo    NY     Light   
...                                   ...              ...   ...       ...   
13881  01/01/61 12:00                                  NaN   NaN      Disk   
13882  01/01/60 18:00                            Gatlinburg    TN  Fireball   
13883  01/01/60 00:00                              Telluride    CO      Disk   
13884  01/01/58 22:00                   Newport Beach    CA  Fireball   
13885  01/01/34 22:00              Londonderry (UK/England)   NaN     Other

      Duration                                            Summary  \
0       20 min  Bright orange and red disc shaped object sight...   
1        1 min  V-shaped formation traveling south. Burnt out ...   
2      5:30min  Saw Dark Strange object clouds turns into a Gr...   
3      2 hours  Multiple star like object with strobing light ...   
4       1 min.  Green lights moving at high speeds and then fa...   
...        ...                                                ...   
13881      nan  This object was in the January 1961 issue of N...   
13882     1min  Red/orange fireball seen on two consecutive da...   
13883      nan  My first UFO sighting, at camp outside of Tell...   
13884     1min  Newport Beach, CA. Disc with dome. 6:30 p.m. N...   
13885      nan    Green fire ball that falls out of the sky at ni

                                                     URL  
0      http://www.nuforc.org/webreports/162/S162974.html  
1      http://www.nuforc.org/webreports/162/S162973.html  
2      http://www.nuforc.org/webreports/162/S162969.html  
3      http://www.nuforc.org/webreports/162/S162977.html  
4      http://www.nuforc.org/webreports/162/S162987.html  
...                                                  ...  
13881   http://www.nuforc.org/webreports/013/S13360.html  
13882   http://www.nuforc.org/webreports/010/S10322.html  
13883   http://www.nuforc.org/webreports/001/S01384.html  
13884   http://www.nuforc.org/webreports/069/S69718.html  

输出结果中,可以看到该表格包含6个列,分别是”Date/Time”,”City”,”State”,”Shape”,”Duration”以及”Summary”。其中,”Date/Time”列包含UFO事件的日期和时间信息,”City”和”State”列包含事件地点的城市和州信息,”Shape”列包含UFO的形状信息,”Duration”列包含事件持续时长,”Summary”列包含事件简要描述,”URL”列包含事件报告的网址链接。这个示例表格中共包含13886条记录。

读取HTML表格的附加参数

除了基本语法,Pandas的read_html函数还支持一些用于解析HTML表格的附加参数。

  • header参数:指定解析表格时使用的表头。可以是数字、列表或None。如果是数字,表示从第几行开始认为是表头。如果是列表,列表中应该包含所有的表头单元格的内容。如果是None,默认使用第一行作为表头。

  • skiprows参数:指定要跳过的行数。可以是整数、列表或callable对象。

  • flavor参数:指定解析HTML表格的解析器。可以是“html5lib”,“lxml”或“bs4”之一。默认值是“html5lib”。

下面是一个示例代码,演示如何使用这些参数:

import pandas as pd

# 从HTML文件中读取表格数据,指定使用第2行作为表头,跳过第1行和第3行
url = 'http://www.nuforc.org/webreports/ndxevent.html'
tables = pd.read_html(url, header=1, skiprows=[0, 2])

# 打印第一个表格
print(tables[0])

在上面的示例代码中,我们使用header和skiprows参数,分别指定了表格的表头和要跳过的行数。最后,我们打印了第一个表格。

总结

在本文中,我们介绍了Pandas Library中的read_html函数,这个函数可以让我们方便地从HTML文件中读取表格数据,并将其转换为Pandas DataFrame对象。我们还学习了如何使用read_html的附加参数来定制表格的解析。希望本文能够对你掌握Pandas的数据处理能力有所帮助。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程