亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
目錄
設(shè)置您的Google Cloud項(xiàng)目
創(chuàng)建和配置Google云項(xiàng)目
生成和確保API證書
授予訪問(wèn)Google表格
了解gspread
關(guān)于單元引用的快速注釋
建立連接和開(kāi)頭電子表格
創(chuàng)建和管理Google表格
管理工作表
工作表選擇
創(chuàng)建新的工作表
重命名工作表
刪除工作表
細(xì)胞性質(zhì)
添加新的行和列
插入特定位置
表范圍后插入
獲取單元格和范圍值
獲取單個(gè)單元格
獲取工作表或范圍的所有單元格
獲取細(xì)胞范圍的值
從行或列獲取所有值
獲取整個(gè)工作表值
更新單元格
更新單個(gè)單元格
更新一系列單元格
更新多個(gè)單元格
刪除行和列
搜索單元格
格式化細(xì)胞
清晰的單元格和工作表
Google API的局限性
結(jié)論
關(guān)鍵要點(diǎn)
常見(jiàn)問(wèn)題
首頁(yè) 科技周邊 人工智能 使用Python的Google表自動(dòng)化|分析Vidhya

使用Python的Google表自動(dòng)化|分析Vidhya

Apr 13, 2025 am 10:01 AM

Google表是Excel的最受歡迎和廣泛使用的替代方案之一,它提供了一個(gè)協(xié)作環(huán)境,具有實(shí)時(shí)編輯,版本控制和與Google Suite無(wú)縫集成等功能,使用戶可以在Google文檔中致電Google Sheept,并利用Google Workspace的最佳功能。雖然您可以使用pandas輕松地加載和使用Excel文件,但可以通過(guò)pandas進(jìn)行編程,但可以用Google表復(fù)制類似的設(shè)置。作為SaaS產(chǎn)品,訪問(wèn)Google表數(shù)據(jù)需要使用其API,該數(shù)據(jù)支持各種編程語(yǔ)言,包括Java,JavaScript,Node.js,PHP,Ruby,Python, Python和Google自己的AppScript。本文著重于使用Python有效地將Google Sheape數(shù)據(jù)加載到PANDAS數(shù)據(jù)框架中,從而可以快速數(shù)據(jù)轉(zhuǎn)換和分析。更改完成后,GSPREAD PYTHON庫(kù)可用于將更新的數(shù)據(jù)推回Google表格,從而提供了一個(gè)方便的界面,以與Google Shealess API進(jìn)行交互。

本文作為數(shù)據(jù)科學(xué)博客馬拉松的一部分發(fā)表。

目錄

  • 設(shè)置您的Google Cloud項(xiàng)目
  • 了解gspread
  • 建立連接和開(kāi)頭電子表格
  • 創(chuàng)建和管理Google表格
  • 管理工作表
  • 細(xì)胞性質(zhì)
  • 添加新的行和列
  • 獲取單元格和范圍值
  • 更新單元格
  • 刪除行和列
  • 搜索單元格
  • 格式化細(xì)胞
  • 清晰的單元格和工作表
  • Google API的局限性
  • 常見(jiàn)問(wèn)題

設(shè)置您的Google Cloud項(xiàng)目

如前所述,Google表是SaaS的產(chǎn)品,因此您需要準(zhǔn)備自動(dòng)化的額外步驟。流行的云計(jì)算平臺(tái)Google Cloud Platform(GCP)提供了各種服務(wù),可幫助與Google產(chǎn)品互動(dòng)以及您的自定義項(xiàng)目的部署。

從廣義上講,我們需要遵循這三個(gè)步驟,以開(kāi)始使用Google Sheales Automation。

創(chuàng)建和配置Google云項(xiàng)目

前往https://console.cloud.google.com/并注冊(cè)免費(fèi)帳戶。下一個(gè)從左上方,單擊項(xiàng)目選擇菜單,然后選擇新項(xiàng)目。提供一個(gè)項(xiàng)目名稱,將組織作為“無(wú)組織”,HIT CREATE,您的GCP項(xiàng)目現(xiàn)在設(shè)置為“無(wú)組織”。

使用Python的Google表自動(dòng)化|分析Vidhya

生成和確保API證書

我們需要啟用Google表和Google Drive API并創(chuàng)建一個(gè)服務(wù)帳戶。這種特殊類型的帳戶使我們能夠訪問(wèn)和管理Google Cloud資源,而無(wú)需人工互動(dòng)。要啟用Google表API,請(qǐng)?jiān)陧敳克阉鳈谥兴阉鞔矄?,然后選擇“ Google Sheats API”。單擊“允許”,它將將我們重定向到API詳細(xì)信息頁(yè)面。此處單擊“創(chuàng)建憑據(jù)”,它將打開(kāi)憑據(jù)創(chuàng)建表格。

使用Python的Google表自動(dòng)化|分析Vidhya

從“選擇”框中選擇“應(yīng)用數(shù)據(jù)”,然后單擊下一步。在下一個(gè)屏幕上,為服務(wù)帳戶提供有意義的名稱,因?yàn)槟鷮⒃谝院蟮牟襟E中使用它。然后,選擇“編輯器”角色。最后,在底部單擊完成。

使用Python的Google表自動(dòng)化|分析Vidhya

同樣,可以啟用Google Drive API。請(qǐng)注意,我們不需要為此API創(chuàng)建另一個(gè)服務(wù)帳戶?,F(xiàn)有的服務(wù)帳戶將能夠訪問(wèn)兩個(gè)API?,F(xiàn)在,我們需要下載憑據(jù)JSON,我們的Python腳本將消耗conference訪問(wèn)Google表格。單擊新生成的服務(wù)帳戶電子郵件,切換到“鑰匙”選項(xiàng)卡,單擊“添加鍵”按鈕以選擇“創(chuàng)建新密鑰”選項(xiàng),選擇JSON,然后創(chuàng)建。

使用Python的Google表自動(dòng)化|分析Vidhya

授予訪問(wèn)Google表格

我們的Python腳本將使用生成的憑據(jù)訪問(wèn)Google表。但是,我們需要手動(dòng)授予對(duì)腳本將使用的文件的訪問(wèn)。為此,請(qǐng)復(fù)制為服務(wù)帳戶生成的電子郵件(在服務(wù)帳戶的詳細(xì)信息選項(xiàng)卡中找到),然后將其作為所需文件的編輯器添加。

了解gspread

Gspread是Google表的Python API包裝紙。它封裝了Google Sheetsapi在單獨(dú)的類和訪問(wèn)方法下提供的許多功能。它使其與Sheetsapi的互動(dòng)易于瀏覽,并且可以迅速將其撿起。

要在本地環(huán)境中設(shè)置庫(kù),可以使用簡(jiǎn)單的PIP命令,例如任何其他Python軟件包。將庫(kù)在單獨(dú)的環(huán)境中安裝,以避免任何依賴性沖突。

 PIP安裝Gspread

關(guān)于單元引用的快速注釋

可以使用兩個(gè)流行的符號(hào)來(lái)引用Google表中的單元格地址:

  • A1符號(hào):此單元格參考由表格名稱,行號(hào)和列字母組成。此參考文獻(xiàn)無(wú)需提及表格名稱,并允許您引用單個(gè)單元格,一系列單元格或整列。
  • 命名范圍:這是具有自定義名稱的定義范圍,可輕松身份識(shí)別和簡(jiǎn)化的Google表格。

建立連接和開(kāi)頭電子表格

現(xiàn)在,我們已經(jīng)設(shè)置了必要的訪問(wèn)和庫(kù),讓我們測(cè)試我們的代碼。在包含服務(wù)帳戶電子郵件的電子表格中,在第一個(gè)單元格中輸入一些隨機(jī)文本。我們將嘗試使用Python腳本來(lái)檢索此值。

使用Python的Google表自動(dòng)化|分析Vidhya

我們將使用JSON模塊加載我們的憑據(jù)并將其傳遞到GSPREAD的“ Service_account_from_dict()”功能。這將返回Google表客戶端對(duì)象,并且可以使用此對(duì)象使用“ Open()”函數(shù)打開(kāi)任何Google表。請(qǐng)參閱下面的代碼。

導(dǎo)入gspread
進(jìn)口JSON

以f的開(kāi)放('Creds.json')為f:
    憑據(jù)= JSON.LOAD(F)

gc = gspread.service_account_from_dict(憑據(jù))

sh = gc.open(“ arcicleDemo”)

有兩種替代方法可以打開(kāi)Goog??le表而不是標(biāo)題名稱。這些替代方法消除了標(biāo)題名稱依賴關(guān)系,就像在Google工作區(qū)中一樣,多個(gè)文件可以具有相同的標(biāo)題。對(duì)于電子表格,如果有兩個(gè)具有相同標(biāo)題的文件,則最新文件將由API訪問(wèn)。我們可以使用文件URL或電子表格的唯一ID訪問(wèn)電子表格,該ID執(zhí)行以下鏈接:“ https://docs.google.com/spreadsheets/d/preadsheets/d/dunique_id>/edit”。以下是通過(guò)URL或唯一ID訪問(wèn)電子表格的代碼。

 ##通過(guò)唯一ID訪問(wèn)
sh = gc.open_by_key(“ 1R97TWCM0FFFNSSSRH_0FJDDG-HCQF5PLHBHRXU9PTV_Q”)


##通過(guò)URL訪問(wèn)
sh = gc.open_by_url(“ https://docs.google.com/spreadsheets/d/1r97twcm0fffnssrh_0fjddg-hcqf5plhbhrxu9pplhrxu9ptv_q/edit?

以下代碼將讀取表格前面輸入的值。該代碼的工作將在本文的后面部分中進(jìn)行解釋。

打印(sh.sheet1.acell('a1')。值)

這將返回表格中A1單元格中存在的值,在我們的情況下,這是“ Gsheet:這是第一個(gè)單元格”。現(xiàn)在,我們都將深入研究GSPREAD庫(kù),并探索所有可用的選項(xiàng)。

注意: shvaria可以容納電子表格對(duì)象,并將在整個(gè)指南中提及

創(chuàng)建和管理Google表格

可能有很多用例以編程方式創(chuàng)建電子表格。一個(gè)人可能是為其用戶發(fā)布數(shù)據(jù)和見(jiàn)解的解決方案。隨之而來(lái)的是,他們可能想直接與用戶共享此工作表。

  • 要?jiǎng)?chuàng)建新的電子表格,請(qǐng)使用GSPREAD客戶端的create()函數(shù)。將新電子表格的標(biāo)題作為參數(shù)傳遞,如果要指定位置,請(qǐng)使用folder_id參數(shù)。
  • 僅由服務(wù)帳戶用戶訪問(wèn)創(chuàng)建的新電子表格。這意味著即使對(duì)于創(chuàng)建服務(wù)帳戶的用戶,電子表格也不可見(jiàn)。為此,我們可以使用電子表格對(duì)象的“共享()”函數(shù)。此功能需要3個(gè)強(qiáng)制性參數(shù):“ email_address”(電子郵件地址),“ perm_type”(許可類型)和“角色”。權(quán)限類型可以采用以下值:用戶,組,域或任何人。對(duì)于大多數(shù)用例,用戶值將起作用。 PERM_TYPE還具有固定數(shù)量的可接受值:“讀者”,“評(píng)論者”,“ Writer”,“ Fileorganizer”,“組織者”和“所有者”。還有一些其他可選參數(shù),提供顆粒狀的信息。
    • “通知”:以控制用戶是否應(yīng)收到共享文件的通知的布爾值。
    • “ email_message”:將發(fā)送的郵件和通知電子郵件發(fā)送的字符串值。
 sh = gc.create('arcitledemotest')##創(chuàng)建一個(gè)新的電子表格
sh.share(email_address ='[Email Protected]',perm_type ='user',prole ='writer',notify = true,email_message =“這是一個(gè)測(cè)試文件”)

使用Python的Google表自動(dòng)化|分析Vidhya

管理工作表

每個(gè)電子表格都是工作表的集合。一個(gè)簡(jiǎn)單的類比是一本書具有多頁(yè)的方式。使用GSPREAD,用戶可以訪問(wèn),修改,刪除或創(chuàng)建新的工作表。讓我們看一下這些功能。

工作表選擇

可以使用工作表對(duì)象的以下方法訪問(wèn)電子表格對(duì)象的工作表:

  • 索引訪問(wèn): “ get_worksheet()”功能在需要訪問(wèn)的工作表的索引中。
  • 按標(biāo)題訪問(wèn): “工作表()”函數(shù)在工作表的標(biāo)題中獲取。請(qǐng)注意,工作表標(biāo)題本質(zhì)上是獨(dú)一無(wú)二的,因此,沒(méi)有兩個(gè)工作表可以具有相同的標(biāo)題。
  • DOT符號(hào)快捷方式訪問(wèn): DOT符號(hào)快捷法允許訪問(wèn)電子表格的第一個(gè)工作表,而無(wú)需給出標(biāo)題,索引或ID。
  • 訪問(wèn)全部: “工作表()”功能返回電子表格的所有工作表。它將它們作為GSPREAD工作表對(duì)象返回。 “標(biāo)題”和“ ID”是此類的一些重要屬性,可幫助以龐大的方式訪問(wèn)所需的工作表。
  • ID訪問(wèn):在開(kāi)發(fā)自動(dòng)化腳本時(shí),可能在某些用例中處理工作表ID而不是標(biāo)題。在這種情況下,可以使用“ get_worksheet_by_id()”功能。

這是所有列出的方法的示例代碼。

打印(sh.get_worksheet(0))
打?。╯h.worksheet(“ aTRECTWORKSHEET1”))
打?。╯h.sheet1)
打印(sh.get_worksheet_by_id(0))

打?。ā艾F(xiàn)在獲取所有床單...”)

##返回所有工作表
對(duì)于sh.worksheets中的WS():
    打印(WS)

所有這些打印語(yǔ)句返回工作表對(duì)象

使用Python的Google表自動(dòng)化|分析Vidhya

創(chuàng)建新的工作表

除了電子表格中的現(xiàn)有工作表外,我們還可以在同一電子表格中編程創(chuàng)建新的工作表。當(dāng)從現(xiàn)有工作表處理數(shù)據(jù)并在單獨(dú)的工作表中發(fā)布結(jié)果時(shí),這種方法可能很有用。

要?jiǎng)?chuàng)建一個(gè)新的工作表,我們需要使用工作表對(duì)象的“ add_worksheet()”函數(shù)。它采用以下參數(shù)。

  • 標(biāo)題:工作表的標(biāo)題
  • 行,列,索引(可選):我們需要定義新創(chuàng)建的工作表的行和列數(shù)。 “索引”參數(shù)是可選的,它控制工作表的排序。

以下代碼將創(chuàng)建一個(gè)帶有100行和20列的工作表,并將工作表放在第二個(gè)位置。

 sh.add_worksheet('tractworksheet1.5',行= 100,cols = 20,index = 1)

它確實(shí)將其放置在第二個(gè)位置(索引1)

使用Python的Google表自動(dòng)化|分析Vidhya

重命名工作表

您可以使用工作表對(duì)象的update_title()函數(shù)重命名工作表標(biāo)題,該函數(shù)接受新標(biāo)題作為參數(shù)。

打?。╯h.worksheet(“ aTRECTWORKSHEET3”)。update_title(“ trictworksheet2.5”))

刪除工作表

可以使用工作表對(duì)象的以下函數(shù)從電子表格中刪除工作表:

  • 使用工作表對(duì)象刪除工作表: “ del_worksheet()”功能將工作表對(duì)象作為參數(shù),并從電子表格中刪除工作表。
  • 使用工作表ID刪除工作表: “ del_worksheet_by_id()”功能將工作表ID作為刪除工作表的輸入。

使用的功能的選擇取決于制作腳本的用例。以下是代碼示例,證明了這兩個(gè)功能的使用情況。

 sh.del_worksheet(sh.worksheet(“ aTRECTWORKSHEET2.5”))
sh.del_worksheet_by_id('602396579')

細(xì)胞性質(zhì)

我們正在從上到下慢慢縮小,并到達(dá)工作表中最?。ㄒ彩亲钪匾模﹩卧?,即一個(gè)單元。單元格是一行和列的交點(diǎn)。對(duì)于GSPREAD庫(kù),它擁有以下屬性:

  • 行:單元的行號(hào)
  • Col:單元的列號(hào)
  • 值:單元的值
  • 地址: A1表示法中單元格的地址

以下示例代碼訪問(wèn)單元格的所有屬性。使用工作表的單元格返回特定的檢查單元格。

 samplecell = sh.worksheet(“ aTRECTWORKSHEET1”)。小區(qū)(行= 1,col = 1)
print('row:{} \ ncolumn:{} \ nValue:{} \ naddress:{}'。格式(Samplecell.Row,samplecell.col,samplecell.col,samplecell.value,samplecell.address.address))

使用Python的Google表自動(dòng)化|分析Vidhya

一旦我們處理庫(kù)的高階功能,所有這些訪問(wèn)者就會(huì)發(fā)揮作用。

添加新的行和列

讓我們開(kāi)始在現(xiàn)有的示例工作表中添加新的行和列,以便為本指南的后面部分提供一些數(shù)據(jù)。 Gspread庫(kù)以兩種方式支持插入作為操作。

插入特定位置

您可以使用insert_row(),insert_rows()和insert_cols()函數(shù)在特定位置插入一行或列。這些功能使我們可以在工作表中的特定位置添加行或列。功能細(xì)節(jié)如下:

  • Insert_row:該函數(shù)需要“值”參數(shù)作為要插入的值列表。列表中的值順序確定插入行的順序。默認(rèn)為1的“索引”參數(shù)指定行插入的位置??蛇x參數(shù)(例如“ value_input_option”和“ sashit_from_before”)控制該函數(shù)如何解釋輸入數(shù)據(jù)和行,以及它是否應(yīng)直接推動(dòng)數(shù)據(jù)或分析數(shù)據(jù),就好像用戶在UI中輸入一樣。
  • insert_rows:它以插入多行的“值”參數(shù)中的列表列表。每個(gè)列表充當(dāng)一行。在內(nèi)部,這是如何通過(guò)GSPREAD將行插入工作表中的實(shí)際實(shí)現(xiàn)。 “ insert_row()”函數(shù)稱為“ insert_rows()”函數(shù),因此,對(duì)于“ insert_row()”函數(shù)所描述的所有參數(shù)對(duì)于“ insert_rows()”為true,除了一個(gè)參數(shù)。在insert_row()函數(shù)中,您可以使用索引參數(shù)確定偏移量,而在insert_rows()函數(shù)中,您可以使用行參數(shù)指定它。
  • insert_cols:此函數(shù)是“ insert_rows()”功能的復(fù)制品,其更改的參數(shù)名稱從“行”到“ col”。其余的可選參數(shù)功能保持不變。

表范圍后插入

此插入僅適用于行。它使我們能夠在特定表范圍內(nèi)插入行,該范圍未知位置。同樣,插入可以單一或多行方式進(jìn)行。

  • append_row:它通過(guò)“值”參數(shù)將行值作為列表。 “ table_range”參數(shù)有助于定義表范圍應(yīng)發(fā)生的表范圍。該范圍以A1表示法給出。
  • append_rows:同樣,“ insert_rows()”,“ append_rows()”是表范圍之后的行插入的實(shí)際實(shí)現(xiàn)。兩個(gè)函數(shù)的所有參數(shù)都與“ append_rows()”列出“值”參數(shù)列表的差異保持不變。

這是示例代碼:

  • 為列添加一行:a,b,c和d
  • 在這些列下添加4行
sampamworksheet.insert_row(
    ['a','b','c','d']
)
sampleworksheet.insert_rows(
    [
        ['kg',54,23,12],
        ['og',34,12,34],
        ['Me',23,45,90],
        ['ye',65,12,54]
    ],行= 2
)

使用Python的Google表自動(dòng)化|分析Vidhya

現(xiàn)在,讓我們?cè)诖松献鲆韵虏襟E:

  • 附加2行要在此表范圍內(nèi)繼續(xù)
  • 添加另一列E
 sampleworksheet.append_rows(
    [
        ['sn',67,87,45],
        ['ar',56,23,65]
    ],,
    table_range =“ a1:d5”
)
sampleworksheet.insert_cols(
    [
        ['e',56,34,65,34,76,45]
    ],,
    col = 5
)

使用Python的Google表自動(dòng)化|分析Vidhya

注意:示例工作表變量包含工作表對(duì)象,并且在整個(gè)指南中都將參考。

獲取單元格和范圍值

在最后一節(jié)中,我們使用各種插入操作以編程方式準(zhǔn)備數(shù)據(jù)?,F(xiàn)在,我們可以使用各種讀取功能獲取插入的數(shù)據(jù)。我們將看到如何獲取單元格,然后移動(dòng)以從一系列單元格和整個(gè)工作表中獲取值。

獲取單個(gè)單元格

工作表上的最基本讀取操作涉及獲取以前部分中所述的值或任何其他單元格屬性。要獲取單個(gè)單元格,有兩個(gè)功能:

  • ACELL:這將在A1表示法中獲取單元格地址并返回單元對(duì)象。
  • 單元格:這將按(行,列)的順序取用單元格坐標(biāo)。

這兩個(gè)函數(shù)都返回一個(gè)單元對(duì)象,我們已經(jīng)看到了如何從這些對(duì)象中獲取值。 ACELL功能在我們與Google Sheets API建立連接的部分中使用。

打?。╯ampleworksheet.acell('a1')。行)
打印(sampleworksheet.cell(1,1)。值)

獲取工作表或范圍的所有單元格

  • 我們可以使用工作表對(duì)象的“ get_all_cells()”函數(shù)在單元對(duì)象列表中獲取工作表的所有單元格。此功能沒(méi)有參數(shù),可以在工作表對(duì)象上直接調(diào)用。
  • 要獲取特定范圍的單元對(duì)象,請(qǐng)使用工作表對(duì)象的范圍()函數(shù)。此功能接受各種輸入形式,例如A1表示法,數(shù)字邊界或命名范圍。如果沒(méi)有輸入,它將在單個(gè)API調(diào)用中返回工作表中的所有單元格。對(duì)于涉及單元格性質(zhì)的用例,此功能有助于濾除所需的單元格并執(zhí)行進(jìn)一步的動(dòng)作。
 print(sampleworksheet.get_all_cells())
打印(sampleworksheet.range('b4:e5'))

獲取細(xì)胞范圍的值

用戶通常在同一工作表中創(chuàng)建多個(gè)微型表,以更好地訪問(wèn)性。在這種情況下,我們需要將獲取范圍改進(jìn)到這些表范圍的確切地址。要獲取此類表范圍,我們可以使用工作表對(duì)象的以下兩個(gè)功能:

  • get: “ get()”函數(shù)將表范圍符合A1符號(hào)或命名范圍,并返回值列表。
  • batch_get: “ get()”功能只能占一個(gè)范圍,但是如果我們要處理多個(gè)范圍,我們可以使用batch_get。此功能使一個(gè)API調(diào)用,節(jié)省了成本。
打?。?get范圍:{}'。格式(sampleworksheet.get(“ a1:d4”)))
print('批次獲取范圍:{}'。格式(sampleworksheet.batch_get([[[[
    “ A1:D4”,
    “ B4:E3”
)))

使用Python的Google表自動(dòng)化|分析Vidhya

從行或列獲取所有值

我們可以使用工作表對(duì)象的“ Row_values()”和“ Col_values()”函數(shù)獲取行或列的所有值。這兩個(gè)功能都采用行或列的位置(編號(hào)為1),然后返回列表中的值。

打印(sampleworksheet.row_values(1))
打?。╯ampleworksheet.col_values(4))

使用Python的Google表自動(dòng)化|分析Vidhya

獲取整個(gè)工作表值

獲取整個(gè)工作表的最佳用例之一是將這些數(shù)據(jù)直接加載到熊貓數(shù)據(jù)框架中,然后根據(jù)要求進(jìn)行后處理或分析??梢允褂霉ぷ鞅韺?duì)象的以下功能返回整個(gè)數(shù)據(jù):

  • 列表列表: “ get_all_values()”函數(shù)將每一行返回列表,然后在一個(gè)列表中列出所有行列表。此函數(shù)是對(duì)“ get_values()”函數(shù)的別名,但有趣的是,“ get_values()”函數(shù)是使用“ get(get()”函數(shù)實(shí)現(xiàn)的。沒(méi)有任何輸入的“ get()”函數(shù)返回列表。因此,所有3個(gè)功能都是相同的。
  • 字典列表: “ get_all_records()”函數(shù)返回字典列表。每個(gè)字典都是一個(gè)鍵值映射,其中鍵是第一行值,而值為下一個(gè)行值。每一行都有其詞典。默認(rèn)情況下,它假設(shè)第一行是鍵,但是我們可以使用“標(biāo)頭”參數(shù)將另一個(gè)行作為鍵。還有一些其他參數(shù),可以幫助處理空細(xì)胞和預(yù)期的標(biāo)頭。

您可以將這兩個(gè)功能的輸出直接傳遞到熊貓數(shù)據(jù)框架功能,以作為熊貓數(shù)據(jù)室獲取工作表表。

導(dǎo)入大熊貓作為pd
打印(pd.dataframe(sampleworksheet.get_all_records()))
打?。╬d.dataframe(sampleworksheet.get_all_values()))

使用Python的Google表自動(dòng)化|分析Vidhya

更新單元格

更新電子表格的現(xiàn)有數(shù)據(jù)是最關(guān)鍵的功能,可以使用GSPREAD庫(kù)功能輕松執(zhí)行。有多種方法可以通過(guò)單個(gè)API調(diào)用來(lái)更新電子表格的單元格,單個(gè)單元格更新為范圍的多個(gè)單元格。

更新單個(gè)單元格

可以使用工作表對(duì)象的以下功能更新工作表的單個(gè)單元格。

  • update_acell:此功能需要兩個(gè)參數(shù),即A1表示法中的單元格地址和要更新的值
  • update_cell:此功能以行列訂單為單元格的坐標(biāo)和更新的值
  • 更新:盡管此功能具有更新多個(gè)單元格的更大范圍,但它也可以用于更新單個(gè)單元格。輸入?yún)?shù)順序與上述兩個(gè)函數(shù)不同。 “ update()”函數(shù)將列表列表作為第一個(gè)值,然后是單元格地址。
打?。╯ampleworksheet.update_acell('a2','kaustubh'))
打?。╯ampleworksheet.update_acell('a3','oggy'))
打?。╯ampleworksheet.update([[['hello']],'a4'))

使用Python的Google表自動(dòng)化|分析Vidhya

更新一系列單元格

您可以使用工作表對(duì)象的以下兩個(gè)功能在工作表中更新一個(gè)單元格。

  • update_cells:此功能與“ range()”函數(shù)結(jié)合使用。 “ update_cells()”功能將輸入作為單元格列表。該單元格可以通過(guò)從范圍函數(shù)返回并訪問(wèn)其值屬性的單元對(duì)象上循環(huán)來(lái)改變其值。
  • 更新:如前所述,您可以使用此功能更新命名范圍或A1注釋范圍。
 rangeofcells = sampleworksheet.range('b2:b7')
對(duì)于范圍內(nèi)的細(xì)胞:
    newValue = int(cell.value)10
    cell.value = newValue
打?。╯ampleworksheet.update_cells(rangeofcells))

上面的代碼獲取了一系列單元格,為其值添加10個(gè),并在單個(gè)API調(diào)用中更新它們。

更新多個(gè)單元格

在上面的一節(jié)中,我們能夠通過(guò)單個(gè)API調(diào)用更新一個(gè)范圍內(nèi)的多個(gè)單元格。此行為也可以擴(kuò)展到多個(gè)范圍。這意味著我們可以用一個(gè)呼叫更新多個(gè)單元格。 “ batch_update()”函數(shù)以鍵和值列表列出了字典列表。范圍鍵值應(yīng)為A1表示法范圍或命名范圍,而值鍵值作為值列表。

范圍1 ='c2:c7'
range2 ='e2:e7'
butrangeValues = sampleworksheet.batch_get [[[[
    范圍1,
    范圍2
)))
range1values,range2values = butrangeValues
range1updatedValues = [[int(x [0])10]在range1values中的x]
range2updatedValues = [[int(x [0])20]在range2values中的x]
打?。╯ampleworksheet.batch_update([[
    {
        “范圍”:range1,
        “值”:range1updatedValues
    },,

    {
        “范圍”:range2,
        “值”:range2updatedValues
    }
)))

上面的代碼使用“ batch_get()”函數(shù)獲取兩個(gè)范圍,然后在本地更新其值,然后使用“ batch_update()”函數(shù)將更新的值推回Google表。此更新的輸出看起來(lái)像這樣:

使用Python的Google表自動(dòng)化|分析Vidhya

刪除行和列

直到這一點(diǎn),我們還插入,閱讀和更新了工作表中的數(shù)據(jù)。我們可以執(zhí)行刪除操作,以從工作表中刪除冗余或不必要的數(shù)據(jù)。 “ delete_rows()”和“ delete_colums()”函數(shù)采用要?jiǎng)h除的“ start_index”。如果指定了“ end_index”,則它將刪除開(kāi)始和結(jié)束的索引范圍內(nèi)的所有列。

打?。╯ampleworksheet.delete_columns(4))
打?。╯ampleworksheet.delete_rows(6))

搜索單元格

Google表API使您可以通過(guò)匹配字符串或正則表達(dá)式來(lái)搜索單元格。您可以執(zhí)行對(duì)案例敏感或不敏感的搜索,并根據(jù)需要將搜索范圍縮小到特定的行或列。使用這兩個(gè)工作表函數(shù)查找匹配的單元格:

  • 查找: “ find()”函數(shù)返回比賽的第一次出現(xiàn)。這將帶有搜索字符串或正則式,“ in_row”或“ in_column”參數(shù),以縮小搜索范圍和“ case_sentive”標(biāo)志以控制搜索類型。 “ in”參數(shù)為行或列位置(索引1)
  • Findall: “ findall()”是“ find()”功能的高級(jí)階段,它返回搜索的所有匹配項(xiàng)。
導(dǎo)入
打?。╯ampleworksheet.find('64',in_column = 2))
searchre = re.compile(r'(a | a)')
打印(sampleworksheet.findall(搜索))

使用Python的Google表自動(dòng)化|分析Vidhya

格式化細(xì)胞

在Excel中,您可以以各種方式格式化工作表,包括文本亮點(diǎn),格式,邊框,對(duì)齊和眾多功能。 Google表還為單元格提供了多種格式選項(xiàng)。 Google Sheaps單元單元文檔中可以找到整個(gè)字段列表。

您可以使用GSpread Worksheet對(duì)象的格式()函數(shù)來(lái)指定要應(yīng)用格式的單元格或范圍。提供格式為JSON字典,其中包括所有格式的密鑰字段及其值。

以下代碼將對(duì)表的所有單元格應(yīng)用邊界。

 borderformatting = {
    “樣式”:“固體”,
    “ colorStyle”:{“ rgbcolor”:{“ red”:0,“綠色”:0,“藍(lán)色”:0,“ alpha”:1}},
}

打?。?    sampleworksheet.format(
        “ A1:D6”,
        格式= {
            “邊界”:{
                “ top”:邊緣形式,
                “底部”:邊緣形式,
                “左”:邊緣形式,
                “右”:邊緣形式,
            },,
        },,
    )
)

我們還可以應(yīng)用批處理格式,以同時(shí)格式化多個(gè)范圍。這節(jié)省了很多時(shí)間為每一個(gè)新更改編寫不同的格式。 “ batch_format()”功能獲取包含兩個(gè)重要鍵的字典列表。第一個(gè)密鑰是定義單元格范圍的范圍鍵和包含格式字典的格式密鑰。

讓我們使用“ batch_format()”函數(shù)在我們的示例表上進(jìn)行以下操作:

  • 將邊界應(yīng)用于表的所有單元格。
  • 大膽地將第一行的文本大膽,表明這些是我們表的列。
  • 對(duì)齊中心中的所有數(shù)據(jù)。
  • 為列添加淺藍(lán)色(第一行)。
 borderformatting = {
    “樣式”:“固體”,
    “ colorStyle”:{“ rgbcolor”:{“ red”:0,“綠色”:0,“藍(lán)色”:0,“ alpha”:1}},
}
格式= [
    {
        “范圍”:“ a1:d6”,
        “格式”: {
            “邊界”:{
                “ top”:邊緣形式,
                “底部”:邊緣形式,
                “左”:邊緣形式,
                “右”:邊緣形式,
            },,
            “水平安排”:“中心”,
        },,
    },,
    {
        “范圍”:“ A1:D1”,
        “格式”: {
            “ textformat”:{
                “大膽”:是的,
            },,
            “ backgroundColorStyle”:{
                “ rgbcolor”:{“紅色”:0.8,“綠色”:0.8,“藍(lán)色”:1,“ alpha”:0.8}
            },,
        },,
    },,
這是給出的

打?。╯ampleworksheet.batch_format(格式))

這是我們桌子的最后狀態(tài)。

使用Python的Google表自動(dòng)化|分析Vidhya

清晰的單元格和工作表

我們可能希望在執(zhí)行操作之前清除范圍。為了清除單元格范圍,使用工作表對(duì)象的“ batch_clear()”函數(shù)。這是需要清除的范圍列表。讓我們從我們的示例表中清除C列。

 print(sampleworksheet.batch_clear([“ C1:C6”]))

使用Python的Google表自動(dòng)化|分析Vidhya

注意:清除函數(shù)僅清除值而不是應(yīng)用的格式。

可以使用工作表對(duì)象的“ clear()”函數(shù)清除整個(gè)工作表。

打?。╯ampleworksheet.clear())

請(qǐng)查看有關(guān)如何使用Python自動(dòng)化Google表的文章

Google API的局限性

我們使用GSPREAD庫(kù)在Google表上進(jìn)行了許多操作。該庫(kù)只是一個(gè)包裝器,將用戶通過(guò)的數(shù)據(jù)準(zhǔn)備成可接受的格式,并使API調(diào)用與床單相關(guān)的Google項(xiàng)目。它的工作原理,以便開(kāi)發(fā)人員不需要了解基本的API呼叫,有效載荷和響應(yīng)。開(kāi)發(fā)人員僅與抽象函數(shù)進(jìn)行交互。

  • 了解API配額消耗:開(kāi)發(fā)人員必須了解API調(diào)用的配額,尤其是對(duì)于生產(chǎn)和關(guān)鍵任務(wù)。
  • 免費(fèi)但受限的用法:Google表API是免費(fèi)的,但對(duì)可以進(jìn)行的API呼叫的數(shù)量有限制。
  • 常見(jiàn)錯(cuò)誤 - 429(“太多請(qǐng)求”) :許多用戶由于超出API呼叫限制而遇到429錯(cuò)誤。
  • 配額限制示例:當(dāng)前配額允許每個(gè)項(xiàng)目每分鐘300個(gè)請(qǐng)求。
  • 超過(guò)配額:如果腳本發(fā)送300多個(gè)請(qǐng)求,則不會(huì)處理其他請(qǐng)求。
  • 指數(shù)向后解決方案:使用隨機(jī)等待時(shí)間的重試機(jī)制,可以幫助管理這些限制。

結(jié)論

在本指南中,我們創(chuàng)建了一個(gè)Google Service帳戶,以執(zhí)行所有將在Google Shays UI上執(zhí)行的操作。我們探索了許多功能,例如添加,更新和刪除數(shù)據(jù)。我們還探索了如何使用Python進(jìn)行格式化和Google表自動(dòng)化。

Google Sheets API提供了更多功能,例如合并單元格,制作受保護(hù)的范圍,隱藏單元格,添加音符,復(fù)制范圍,甚至添加過(guò)濾器,所有操作以編程方式!盡管GSpread庫(kù)的文檔缺乏這些解釋,但可以繼續(xù)探索Google Sheeps官方文檔,并檢查GSpread文檔的API參考部分,該文檔的API參考部分提供了有關(guān)圖書館中實(shí)現(xiàn)的所有功能的高級(jí)信息。

關(guān)鍵要點(diǎn)

  • Google表自動(dòng)化需要設(shè)置Google Cloud項(xiàng)目,這不會(huì)造成任何成本。但是,如果您不優(yōu)化代碼,則可能會(huì)耗盡配額,從而導(dǎo)致代碼后期出現(xiàn)錯(cuò)誤。旨在盡可能使用批處理功能。
  • 使用Google表API可以實(shí)現(xiàn)的目標(biāo)有很多可能性,而GSpread庫(kù)只是一個(gè)起點(diǎn)。應(yīng)該探索官方文檔以實(shí)現(xiàn)圖書館中缺少的功能(也許可以貢獻(xiàn))
  • 您可以使用Google表自動(dòng)化設(shè)置來(lái)構(gòu)建維護(hù)主記錄的采購(gòu)管道,并將其推向更高級(jí)的數(shù)據(jù)庫(kù),例如OLAP數(shù)據(jù)庫(kù)。將這些數(shù)據(jù)庫(kù)連接到BI軟件,例如Tableau,以完成端到端項(xiàng)目。
  • Google表自動(dòng)化可以通過(guò)設(shè)置自動(dòng)更新,導(dǎo)入或組織數(shù)據(jù)的工作流來(lái)幫助您消除手動(dòng)數(shù)據(jù)輸入,從而大大提高效率。
  • 使用Google表自動(dòng)化,您可以安排重復(fù)的任務(wù),例如發(fā)送報(bào)告,執(zhí)行計(jì)算或更新單元格,從而減少重復(fù)手動(dòng)操作的需求。

常見(jiàn)問(wèn)題

Q1。如何避免“ 429:太多請(qǐng)求”錯(cuò)誤?

答:應(yīng)該實(shí)施重試機(jī)制,以試圖在一段時(shí)間內(nèi)再次提出請(qǐng)求。一個(gè)這樣的例子是指數(shù)退回算法

Q2。您可以在Google表中進(jìn)行自動(dòng)化嗎?

答:是的,您可以使用, Google Apps腳本以及ZapierMake(以前是Integromat)(以前是Integrat)等內(nèi)置功能在Google表中自動(dòng)化任務(wù)。這些允許您自動(dòng)化重復(fù)任務(wù),例如數(shù)據(jù)輸入,格式和計(jì)算。

Q3。 Google有一個(gè)自動(dòng)化工具嗎?

答:是的,Google提供了Google Apps腳本,這是一個(gè)基于JavaScript的平臺(tái),可在Google Workspace應(yīng)用程序中自動(dòng)化任務(wù)(例如,表,文檔,文檔,Gmail)。 Additionally, tools like Google Cloud Workflows and Zapier integrations can be used for broader automation across Google services.

Q4。 How can I set up Google Sheets automations to save time on repetitive tasks?

A. You can set up Google Sheets automations using built-in tools like Macros and Google Apps Script. Macros allow you to record actions and replay them, while Google Apps Script lets you create custom automations using JavaScript. These automations can streamline repetitive tasks such as data entry, formatting, or running specific functions automatically in Google Sheets.

Q5。 What are some popular Google Sheets automations for data analysis?

A. Popular Google Sheets automations for data analysis include automated data import from external sources, scheduled reports using Google Apps Script, and conditional formatting to highlight trends. These automations help optimize the data analysis process, making Google Sheets a powerful tool for managing and interpreting large datasets efficiently.

以上是使用Python的Google表自動(dòng)化|分析Vidhya的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

AGI和AI超級(jí)智能將嚴(yán)重?fù)糁腥祟愄旎ò宓募僭O(shè)障礙 AGI和AI超級(jí)智能將嚴(yán)重?fù)糁腥祟愄旎ò宓募僭O(shè)障礙 Jul 04, 2025 am 11:10 AM

讓我們來(lái)談?wù)劇? 對(duì)創(chuàng)新AI突破的分析是我正在進(jìn)行的AI中正在進(jìn)行的福布斯列覆蓋的一部分,包括識(shí)別和解釋各種有影響力的AI復(fù)雜性(請(qǐng)參閱此處的鏈接)。 前往Agi和

Kimi K2:最強(qiáng)大的開(kāi)源代理模型 Kimi K2:最強(qiáng)大的開(kāi)源代理模型 Jul 12, 2025 am 09:16 AM

還記得今年早些時(shí)候破壞了Genai行業(yè)的大量開(kāi)源中國(guó)模型嗎?盡管DeepSeek占據(jù)了大多數(shù)頭條新聞,但Kimi K1.5是列表中的重要名字之一。模型很酷。

Grok 4 vs Claude 4:哪個(gè)更好? Grok 4 vs Claude 4:哪個(gè)更好? Jul 12, 2025 am 09:37 AM

到2025年中期,AI“軍備競(jìng)賽”正在加熱,XAI和Anthropic都發(fā)布了他們的旗艦車型Grok 4和Claude 4。這兩種模型處于設(shè)計(jì)理念和部署平臺(tái)的相反端,但他們卻在

深入探討人工智能如何幫助和危害各行各業(yè) 深入探討人工智能如何幫助和危害各行各業(yè) Jul 04, 2025 am 11:11 AM

我們將討論:公司開(kāi)始委派AI的工作職能,以及那些最不可能用人工智能替代的角色AI如何重塑行業(yè)和就業(yè),以及企業(yè)和工人的工作方式。

英超聯(lián)賽發(fā)揮了AI播放來(lái)增強(qiáng)球迷的體驗(yàn) 英超聯(lián)賽發(fā)揮了AI播放來(lái)增強(qiáng)球迷的體驗(yàn) Jul 03, 2025 am 11:16 AM

7月1日,英格蘭頂級(jí)足球聯(lián)盟(England)與一家主要科技公司揭示了為期五年的合作,以創(chuàng)建比簡(jiǎn)單的亮點(diǎn)卷軸更先進(jìn)的東西:一種由實(shí)時(shí)AI驅(qū)動(dòng)的工具,可為EV提供個(gè)性化的更新和互動(dòng)

今天已經(jīng)在我們中間走了10個(gè)驚人的人形機(jī)器人 今天已經(jīng)在我們中間走了10個(gè)驚人的人形機(jī)器人 Jul 16, 2025 am 11:12 AM

但是我們可能甚至不必等10年就可以看到一個(gè)。實(shí)際上,可以被認(rèn)為是真正有用的,類人類機(jī)器的第一波。 近年來(lái),有許多原型和生產(chǎn)模型從T中走出來(lái)

上下文工程是' new'及時(shí)的工程 上下文工程是' new'及時(shí)的工程 Jul 12, 2025 am 09:33 AM

直到上一年,迅速的工程被認(rèn)為是與大語(yǔ)言模型(LLM)互動(dòng)的關(guān)鍵技能。然而,最近,LLM在推理和理解能力方面已經(jīng)顯著提高。自然,我們的期望

Chip Ganassi Racing宣布Openai為中俄亥俄州IndyCar贊助商 Chip Ganassi Racing宣布Openai為中俄亥俄州IndyCar贊助商 Jul 03, 2025 am 11:17 AM

Openai是世界上最杰出的人工智能組織之一,將成為由三屆NTT IndyCar系列冠軍和2025 Indianapolis 500冠軍Alex PA驅(qū)動(dòng)的第10號(hào)Chip Ganassi Racing(CGR)本田的主要合作伙伴

See all articles