常用表格数据存储文件格式——CSV、MicrosoftExcel、GoogleExcel。Python通常被称为胶水语言。这个名字是由于人们逐渐开发的大量界面库和功能,也得益于广泛使用和良好的开源社区。这些接口库和功能可以直接访问不同的文件格式,以及数据库、网页和各种API等数据源。本文学习内容:从GoogleSheets中提取数据从CSV文件中提取数据从Excel文件中提取数据下载(推荐使用JupyterNotebook/Lab),并创建一个新的笔记本。源代码和文档:https://github.com/FBosler/Medium-Data-Extraction解决方案本文将您带入一个虚构但可能非常熟悉的场景。您可以组合不同的数据源来创建报告或执行分析。笔记!!!以下示例和数据纯属虚构。假设您的任务是弄清楚如何提高销售人员的绩效。假设潜在客户有相当自发的需求。发生这种情况时,销售团队将订单导入系统。然后,销售代表会在订单交付时安排会议。具体日期有时在交货日期之前,有时在交货日期之后。您的代表有费用预算,将支付会议期间的餐费。他们负责报销这笔费用并将发票交给会计团队进行处理。在潜在客户决定是否接受报价后,销售代表会跟踪订单是否已完成。可以使用以下三个数据源进行分析:10万个订单(GoogleSheets)约5万张餐费发票(Excel文件)负责公司和销售代表名单(CVS文件)从GoogleSheets获取数据访问GoogleSheets是三者之一方法最复杂,因为您需要在使用GoogleSheetsAPI之前设置一些凭据。理论上,您可以获取公开可用的谷歌表格(即提取源HTML代码),但您必须使用BeautifulSoup等工具进行大量数据操作才能将HTML转储转换为有用的东西。我确实尝试过,但结果很糟糕,不值得付出努力。所以,这就是API。此外,数据分析DataFrame将使用gspread进行无缝转换。要获得OAuth2证书,请转到GoogleDevelopersConsole并创建一个新项目(或选择一个现有项目)。单击“创建项目”。如果您的公司使用GoogleMail,请将其更改为私人帐户以避免潜在的权限冲突。给项目起个名字(名字无所谓,我们这里就把它命名为MediaDataExtraction)。单击APIs&Services转到库。启用Google表格API。单击结果,然后在下一页单击启用API。创建服务帐户和密钥文件。服务帐户是用于具有有限访问权限的程序访问的专用帐户。服务帐户可以而且应该根据手头任务的需要设置尽可能多的特定权限项。创建一个JSON(另一种文件格式)密钥文件。在角色上,选择“项目->查看者”。如果您尚未在前面的步骤中设置角色,请立即进行。注意:设置为“查看器”有一些限制。如果您希望以编程方式创建Google表格,则必须选择不同的设置。然后可以下载或自动下载JSON私钥文件。建议将文件重命名为“Medium_Data_Extraction_Key”并将文件移动到JupyterNotebook文件夹中,以便它与下面的示例无缝协作。JSON文件包含最近创建的服务帐户凭据。非常好,接近成功。下载数据首先,必须下载并安装额外的包,在笔记本中运行以下命令。!pipinstallgspread!pipinstalloauth2client其次,如果你还没有移动密钥文件,你必须确保将之前创建的JSON密钥文件移动到当前运行的Jupyter笔记本(Jupyternotebook)文件夹中。或者,可以指定不同的GOOGLE_KEY_FILE路径。fromoauth2client.service_accountimportServiceAccountCredentialsimportgspreadimportpandasaspdscope=['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.wo授权(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是为本章准备的谷歌工作表的工作簿ID。WORKBOOK_KEY='10HX66PbcGDvx6QKM8DC9_zCGp1TD_CZhovGUbtu_M6Y'这个工作簿是公开的,如果你想下载不同的数据,你需要改变WORKBOOK_KEY。如果URL有问题,通常可以在google工作表的最后两个反斜杠之间找到id。获取CSV数据您可以从存储库以传统方式下载CSV数据,也可以使用以下代码片段来执行此操作。同样,可能需要在笔记本上安装并运行缺少的请求包:!pipinstallrequestsimportrequestsurl='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表格。!pipinstallopenpyxl!pipinstallxlrd完成这些步骤后,可以用同样的方法获取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')大功告成!已经创建了三个不同的Pandas数据框,可以在同一个Jupyternotebook中访问它们:sales_datasales_teaminvoices
