数据提取技术指南

在机器学习领域,高性能数据并非总是必需的。作为机器学习从业者,在处理现实世界的问题或构建项目时,数据是必不可少的。为了满足对数据的需求,通常需要从API获取数据;如果网站不提供API,那么剩下的唯一选择就是网络爬虫。本文将指导如何使用API提取数据,并将其保存为数据框的形式。

目录

  • API获取数据
  • 什么是API
  • 使用API的重要性
  • 如何获取API
  • 从API提取数据的实战代码
  • 从SQL数据库获取数据
  • 结束语

API获取数据

API是应用程序编程接口,它作为两个软件之间通信的接口。例如,如果想要预订火车票,有多种选择,如IRCTC网站、Yatra、Make My Trip等。这些不同的组织和软件能够共享信息,这就是API的重要性。每个组织在多个操作系统上提供服务,如iOS和Android,它们都与单一数据库集成,因此它们也使用API从数据库中获取数据以供多个应用程序使用。

API代表应用程序编程接口,它作为两个软件之间通信的接口。

考虑一个例子,如果想要预订火车票,有多种选择,如IRCTC网站、Yatra、Make My Trip等。这些不同的组织和软件能够共享信息,这就是API的重要性。每个组织在多个操作系统上提供服务,如iOS和Android,它们都与单一数据库集成,因此它们也使用API从数据库中获取数据以供多个应用程序使用。

将使用TMDB官方网站,它提供不同的API来获取不同类型的数据。将获取最高评分的电影数据到数据框中。要获取数据,需要传递API。访问TMDB网站并使用Google账户注册并登录。之后,在个人资料部分访问设置。在设置的左侧面板中,最后一个选项是API,点击它并生成API。

现在有自己的API密钥,访问TMDB API开发者网站,可以在API部分的顶部看到。点击电影并访问获取最高评分。在最高评分窗口中,点击尝试现在选项,可以看到右侧的发送请求按钮旁边有一个链接到最高评分电影。

https://api.themoviedb.org/3/movie/top_rated?api_key=<>&language=en-US&page=1

复制链接并将API密钥粘贴到链接中,然后打开链接,将能够看到类似JSON的数据。现在为了理解这些数据,有各种工具,如JSON查看器。如果想,可以打开它并将代码粘贴到查看器中。它是一个字典,所需的电影信息位于结果键下。

打开Jupyter Notebook来编写代码并提取数据到数据框中。如果没有安装pandas和requests库,请使用pip命令安装。

pip install pandas pip install requests

现在定义API密钥在链接中,并向TMDB网站发送请求以提取数据并保存响应到一个变量中。

api_key = 'API密钥' link = "https://api.themoviedb.org/3/movie/top_rated?api_key=<>&language=en-US&page=1" response = requests.get(link)

不要忘记在链接中提到API密钥。运行上述代码后,如果打印响应,可以看到响应为200,这意味着一切都在正常工作,已经以JSON的形式获得了数据。想要的数据在结果键下,所以尝试打印结果键。

response.json()["results"]

为了创建所需列的数据框,可以使用pandas数据框,将得到一个有20行的数据框,这些是第1页的顶级电影。

data = pd.DataFrame(response.json()["results"])[['id','title','overview','popularity','release_date','vote_average','vote_count']]

想要完整的428页的数据,所以将代码放在for循环中,并再次向不同页面的网站发送请求,每次都会得到20行和七列的数据。

for i in range(1, 429): response = requests.get("https://api.themoviedb.org/3/movie/top_rated?api_key=&language=en-US&page={}".format(i)) temp_df = pd.DataFrame(response.json()["results"])[['id','title','overview','popularity','release_date','vote_average','vote_count']] data.append(temp_df, ignore_index=False)

因此得到了完整的数据框,有8551行。格式化了页码以请求每次不同的页面。请在链接中提到API密钥,去掉HTML标签。运行至少需要2分钟。得到的数据框如下所示。

将数据保存到CSV文件,以便可以使用这些数据进行分析、处理并在此基础上创建项目。

从SQL数据库获取数据

使用Python操作SQL数据库非常简单。Python提供了各种库来连接数据库,读取SQL查询,并从SQL表中提取数据到pandas数据框。

使用Kaggle上上传的世界城市和地区人口数据集,以SQL查询格式提供。可以从这里访问数据集。下载文件并将其上传到本地数据库。可以选择MySQL、XAMPP、SQLite或任何喜欢的数据库。所有数据库都提供导入选项,只需点击它并选择下载的文件并上传。

为了建立连接,请安装MySQL连接器库。

!pip install mysql.connector import numpy as np import pandas as pd import mysql.connector conn = mysql.connector.connect(host="localhost", user="root", password="", database="World") city_data = pd.read_sql_query("SELECT * FROM city", conn)
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485