Python怎么从不同表格中提取数据

发布时间:2021-07-05 17:30:12 作者:Leah
来源:亿速云 阅读:773

Python怎么从不同表格中提取数据,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

获取谷歌表格数据

访问谷歌表格是这三种方法中最复杂的,因为你需要在使用谷歌表格API前设置一些证书。理论上,你可以获取一个公开可用的谷歌表(即提取源HTML代码)但必须使用Beautiful  Soup之类的工具进行大量数据操作,才能将HTML转储转换为有用的内容。我确实尝试过,但是结果很糟糕,不值得一试。所以,API就是如此。此外,还将使用gspread无缝转换数据分析DataFrame。

获取OAuth3证书

前往谷歌开发人员控制台,创建一个新项目(或选择现有的项目)。点击“创建项目”。如果公司使用谷歌邮件,可将其更改为私人帐户,以避免潜在的权限冲突。

Python怎么从不同表格中提取数据

为项目命名(名称无关紧要,此处将其命名为媒体数据提取)。

Python怎么从不同表格中提取数据

点击APIs & Services ,前往library。

Python怎么从不同表格中提取数据

启用谷歌Sheets API。单击结果,并在如下页面上单击启用 API。

Python怎么从不同表格中提取数据

创建一个服务帐户和密钥文件。服务帐户是用于程序访问的专用帐户,访问权限有限。服务帐户可以而且应该通过有尽可能多的特定权限项目进行设置,当前的任务也需要如此。

Python怎么从不同表格中提取数据

创建JSON(另一种文件格式)密钥文件。在角色上,选择“Project -> Viewer”。

Python怎么从不同表格中提取数据

如果还没有在前面的步骤中设置角色请立即设置。

Python怎么从不同表格中提取数据

注意:设置为“Viewer”会存在一些限制。如果希望以编程方式创建谷歌表格,则必须选择不同的设置。

然后,私有JSON密钥文件就可以下载或自动下载了。建议将该文件重命名为'Medium_Data_Extraction_Key,并将文件移动到JupyterNotebook文件夹中,以便与下面的示例无缝衔接。JSON文件包含最近创建的服务帐户证书。

非常好,就要成功了。

下载数据

首先,必须下载并安装其他软件包,在笔记本中运行以下命令。

!pip install gspread

!pip install oauth3client

其次,如果还没有移动密钥文件的话,必须确保将之前创建的JSON密钥文件移动到目前运行的木星笔记本(Jupyternotebook)文件夹中。或者,可以指定一个不同的GOOGLE_KEY_FILE路径。

from oauth3client.service_account import ServiceAccountCredentials import gspread import pandas as pd scope = [  'https://www.googleapis.com/auth/spreadsheets', ] GOOGLE_KEY_FILE='Medium_Data_Extraction_Key.json' credentials = ServiceAccountCredentials.from_json_keyfile_name(GOOGLE_KEY_FILE, scope) gc = gspread.authorize(credentials) wokbook_key ='10HX66PbcGDvx6QKM8DC9_zCGp1TD_CZhovGUbtu_M6Y' workbook = gc.open_by_key(wokbook_key) sheet = workbook.get_worksheet(0) values = sheet.get_all_values() sales_data = pd.DataFrame(values[1:],columns=values[0]) WORKBOOK_KEY是为本章内容准备的谷歌表格的工作簿id。 WORKBOOK_KEY = '10HX66PbcGDvx6QKM8DC9_zCGp1TD_CZhovGUbtu_M6Y'

这份工作簿是公开的,如果想下载不同的数据,需要更改WORKBOOK_KEY。URL有问题的话,id通常可以在谷歌表格的最后两个反斜杠之间找到。

获取CSV数据

可以从repo以传统方式下载CSV数据,也可以使用以下代码片段进行下载。同样地,可能需要在笔记本上安装并运行缺失的请求包:

!pip install requests import requests url ='https://raw.githubusercontent.com/FBosler/Medium-Data-Extraction/master/sales_team.csv' res = requests.get(url, allow_redirects=True) withopen('sales_team.csv','wb') asfile:  file.write(res.content) sales_team = pd.read_csv('sales_team.csv')

CSV数据的美妙之处在于Python /panda可以立即进行处理。Excel则需要额外的库。

获取Excel数据

在开始之前,很可能还要安装openpyxl和xlrd,这能让Pandas也可以打开Excel表。

!pip install openpyxl

!pip install xlrd

完成这些步骤之后,可以相同的方式获得Excel数据,并将其加载到另一个DataFrame中。

url ='https://github.com/FBosler/Medium-Data-Extraction/blob/master/invoices.xlsx?raw=true' res = requests.get(url, allow_redirects=True) withopen('invoices.xlsx','wb') asfile:  file.write(res.content) invoices = pd.read_excel('invoices.xlsx')

看完上述内容,你们掌握Python怎么从不同表格中提取数据的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

推荐阅读:
  1. 用Python提取 Word 表格内容
  2. 学Python可以做些什么

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python

上一篇:如何优化Python代码

下一篇:centos-yum出现Couldn't resolve host 'apt.sw.be'错误怎么解决

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》