溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python怎么從不同表格中提取數(shù)據(jù)

發(fā)布時(shí)間:2021-07-05 17:30:12 來源:億速云 閱讀:749 作者:Leah 欄目:編程語言

Python怎么從不同表格中提取數(shù)據(jù),相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

獲取谷歌表格數(shù)據(jù)

訪問谷歌表格是這三種方法中最復(fù)雜的,因?yàn)槟阈枰谑褂霉雀璞砀馎PI前設(shè)置一些證書。理論上,你可以獲取一個(gè)公開可用的谷歌表(即提取源HTML代碼)但必須使用Beautiful  Soup之類的工具進(jìn)行大量數(shù)據(jù)操作,才能將HTML轉(zhuǎn)儲(chǔ)轉(zhuǎn)換為有用的內(nèi)容。我確實(shí)嘗試過,但是結(jié)果很糟糕,不值得一試。所以,API就是如此。此外,還將使用gspread無縫轉(zhuǎn)換數(shù)據(jù)分析DataFrame。

獲取OAuth3證書

前往谷歌開發(fā)人員控制臺(tái),創(chuàng)建一個(gè)新項(xiàng)目(或選擇現(xiàn)有的項(xiàng)目)。點(diǎn)擊“創(chuàng)建項(xiàng)目”。如果公司使用谷歌郵件,可將其更改為私人帳戶,以避免潛在的權(quán)限沖突。

Python怎么從不同表格中提取數(shù)據(jù)

為項(xiàng)目命名(名稱無關(guān)緊要,此處將其命名為媒體數(shù)據(jù)提取)。

Python怎么從不同表格中提取數(shù)據(jù)

點(diǎn)擊APIs & Services ,前往library。

Python怎么從不同表格中提取數(shù)據(jù)

啟用谷歌Sheets API。單擊結(jié)果,并在如下頁面上單擊啟用 API。

Python怎么從不同表格中提取數(shù)據(jù)

創(chuàng)建一個(gè)服務(wù)帳戶和密鑰文件。服務(wù)帳戶是用于程序訪問的專用帳戶,訪問權(quán)限有限。服務(wù)帳戶可以而且應(yīng)該通過有盡可能多的特定權(quán)限項(xiàng)目進(jìn)行設(shè)置,當(dāng)前的任務(wù)也需要如此。

Python怎么從不同表格中提取數(shù)據(jù)

創(chuàng)建JSON(另一種文件格式)密鑰文件。在角色上,選擇“Project -> Viewer”。

Python怎么從不同表格中提取數(shù)據(jù)

如果還沒有在前面的步驟中設(shè)置角色請立即設(shè)置。

Python怎么從不同表格中提取數(shù)據(jù)

注意:設(shè)置為“Viewer”會(huì)存在一些限制。如果希望以編程方式創(chuàng)建谷歌表格,則必須選擇不同的設(shè)置。

然后,私有JSON密鑰文件就可以下載或自動(dòng)下載了。建議將該文件重命名為'Medium_Data_Extraction_Key,并將文件移動(dòng)到JupyterNotebook文件夾中,以便與下面的示例無縫銜接。JSON文件包含最近創(chuàng)建的服務(wù)帳戶證書。

非常好,就要成功了。

下載數(shù)據(jù)

首先,必須下載并安裝其他軟件包,在筆記本中運(yùn)行以下命令。

!pip install gspread

!pip install oauth3client

其次,如果還沒有移動(dòng)密鑰文件的話,必須確保將之前創(chuàng)建的JSON密鑰文件移動(dòng)到目前運(yùn)行的木星筆記本(Jupyternotebook)文件夾中。或者,可以指定一個(gè)不同的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是為本章內(nèi)容準(zhǔn)備的谷歌表格的工作簿id。 WORKBOOK_KEY = '10HX66PbcGDvx6QKM8DC9_zCGp1TD_CZhovGUbtu_M6Y'

這份工作簿是公開的,如果想下載不同的數(shù)據(jù),需要更改WORKBOOK_KEY。URL有問題的話,id通常可以在谷歌表格的最后兩個(gè)反斜杠之間找到。

獲取CSV數(shù)據(jù)

可以從repo以傳統(tǒng)方式下載CSV數(shù)據(jù),也可以使用以下代碼片段進(jìn)行下載。同樣地,可能需要在筆記本上安裝并運(yùn)行缺失的請求包:

!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數(shù)據(jù)的美妙之處在于Python /panda可以立即進(jìn)行處理。Excel則需要額外的庫。

獲取Excel數(shù)據(jù)

在開始之前,很可能還要安裝openpyxl和xlrd,這能讓Pandas也可以打開Excel表。

!pip install openpyxl

!pip install xlrd

完成這些步驟之后,可以相同的方式獲得Excel數(shù)據(jù),并將其加載到另一個(gè)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')

看完上述內(nèi)容,你們掌握Python怎么從不同表格中提取數(shù)據(jù)的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI