用Pandas的read_html()来抓取维基百科的表格
在这篇文章中,我们将讨论一个名为read_html()的特殊函数,该函数用于直接从网页中读取HTML表格到Pandas DataFrame中,而不需要知道如何刮取网站的HTML,这个工具对于迅速组合来自众多网站的表格非常有用。然而,这些数据必须要进一步清理,所以让我们看看如何处理这些数据。
什么是pd.read_html
Pandas read_html()是刮取网络数据的最简单方法之一。这些数据可以根据用户的要求进一步清理。
**pandas.read_html()的语法 **
语法:
其中,
io可以是一个HTML字符串,一个文件,或一个URL。
例1:使用Html字符串
在这个例子中,我们使用符号”’将一个多行字符串存储在一个名为html_string的变量中。然后,我们调用函数 read_html 并将 html_string 传给它。这个函数提取所有的HTML表格,并返回一个所有表格的列表。
输出:
此外,如果你想看一下数据类型,你可以通过调用info()函数来实现,方法如下。
例2: 从URL读取HTML数据
在这个例子中,让我们尝试从一个网页上读取HTML。我们使用一个维基百科的页面,其网址为 “Demographics_of_India”。从这个网页中,我想抓取以下表格的内容,我们需要提取下面的高亮列。
网页上有近37个表,为了找到一个特定的表,我们可以使用参数 “匹配”。为了找出数据框的长度,我们使用len()函数,如下所示。
输出:
例3:从一个网页上找到特定的表格
让我们把 “各州/联邦区的人口分布(2011年)”这个值传递给参数匹配。
例4:获取列数据
因此,我们必须获得 “州/中央直辖区 “列和 “人口 “列。
同样地,我们得到了列人口
例5:合并两列
让我们在一个新的DataFrame中存储这两列。
例6: 丢弃行数据
让我们尝试在Pandas中使用drop()的帮助下删除最后一行,即总数。
输出:
例7:表格的数据可视化
这里我们使用Matplotlib模块将给定的HTML数据绘制成图形格式。
例8:用Python的Pandas编写HTML表
在这里,我们创建了一个DataFrame,并将其转换为一个HTML文件,我们还传递了一些HTML属性,使其成为一个漂亮的表格。
输出:
例9:渲染HTML页面时出错
如果HTML页面不包含任何表格,将返回一个值错误。