Google colab中從kaggle中接入數(shù)據(jù)的操作方法
寫(xiě)在前面
使用google colab進(jìn)行數(shù)據(jù)分析和探索時(shí),可引用的數(shù)據(jù)源包括但不限于:1.可上傳的數(shù)據(jù)文件用本地加載的的方式打開(kāi)數(shù)據(jù)資源;2.從網(wǎng)絡(luò)鏈接中直接打開(kāi)后加載到緩存中的文件資源;3.通過(guò)API或者外部的開(kāi)放接口加載數(shù)據(jù);
今天要介紹的就是第三種,我試圖教會(huì)你如何從colab中直接從kaggle加載數(shù)據(jù)集。理論上這種方法適用于所有的云端jupyter筆記本。實(shí)施過(guò)程中如果遇到預(yù)期之外的問(wèn)題,歡迎留言交流討論。
本文涉及到兩大平臺(tái)內(nèi)容,所以我默認(rèn)你已經(jīng)擁有了,并且使用過(guò)了一段時(shí)間的google賬號(hào)和kaggle賬號(hào)。首先介紹一下google的colab,相比于其他國(guó)內(nèi)外平臺(tái),它對(duì)于免費(fèi)賬號(hào)也分配足夠可用的GPU和TPU資源。而且升級(jí)到pro版本后,更可以借助copilot的AI補(bǔ)全代碼功能,減少開(kāi)發(fā)壓力。
Google Colab 是一項(xiàng)托管 Jupyter Notebook 服務(wù),無(wú)需設(shè)置即可使用,并提供對(duì)計(jì)算資源(包括 GPU 和 TPU)的免費(fèi)訪問(wèn)。 Colab 特別適合機(jī)器學(xué)習(xí)、數(shù)據(jù)科學(xué)和教育。
對(duì)于在云端筆記本中使用kaggle數(shù)據(jù),完全可以通過(guò)先將kaggle數(shù)據(jù)下載至本地,再將數(shù)據(jù)上傳到服務(wù)器的方式解決。但本文旨在擺脫這種冗長(zhǎng)的處理辦法,試圖一步到位,而對(duì)于無(wú)法實(shí)現(xiàn)本教程中操作辦法的同學(xué)們,還是建議一切以能用為主,簡(jiǎn)化流程乃是第二位的。
kaggle 部分
- 點(diǎn)擊你的頭像,選擇Settings
- 下拉至 API,創(chuàng)建一個(gè)用于google colab使用的token,點(diǎn)擊create new Token后,會(huì)自動(dòng)開(kāi)始下載一個(gè)kaggle.json的配置文件,記住它的存儲(chǔ)位置,稍后我們會(huì)用到。
Google Colab部分
1.將kaggle.json文件上傳至Google Drive
你新建的jupyter筆記本也會(huì)默認(rèn)保存在Drive的某個(gè)位置,與其他的google應(yīng)用一起共享Drive的免費(fèi)空間。將kaggle.json文件通過(guò) “上傳” 功能傳至Google Drive,記住它的位置,之后要用。
如果是其他的在線jupyter內(nèi)容,請(qǐng)上傳至對(duì)應(yīng)云端服務(wù)器上存儲(chǔ)jupyter筆記本位置的同一文件夾內(nèi)。(其實(shí)不用放到一起,只是為了便于你方便找到和操作)
上傳完畢之后,在jupyter執(zhí)行如下命令,查看對(duì)應(yīng)的存儲(chǔ)位置,如果當(dāng)前的位置和你的jupyter位置不對(duì)應(yīng),那么就在下面給你預(yù)留的代碼里改一下路徑:
import os # 當(dāng)前工作目錄 print("當(dāng)前工作目錄:", os.getcwd()) # 改變工作目錄到新的文件夾 os.chdir("/content/drive/MyDrive/Colab Notebooks") ## 這里替換成kaggle.json存儲(chǔ)的所在目錄 # 現(xiàn)在的工作目錄 print("新的工作目錄:", os.getcwd())
當(dāng)前工作目錄: /content/drive/My Drive
新的工作目錄: /content/drive/MyDrive/Colab Notebooks
確保輸出結(jié)果正確即可。
2.打通Google Colab與Google Drive之間的連接(其他平臺(tái)請(qǐng)略過(guò)這一步)
Google Drive即谷歌云盤(pán),是谷歌生態(tài)下的公共存儲(chǔ)空間。它本身支持多種格式文件的存儲(chǔ),以各種格式存儲(chǔ)的文件,又能以不同的Google云端應(yīng)用在線打開(kāi)并執(zhí)行操作。Colab作為.ipynb格式文件的編輯器,只要在colab中打通與Google Drive的連接,就能直接訪問(wèn)其中的內(nèi)容。
操作很簡(jiǎn)單,只需要點(diǎn)擊這個(gè)圖標(biāo),就能夠允許這個(gè)jupyter筆記本關(guān)聯(lián)drive,受限于網(wǎng)絡(luò)和網(wǎng)盤(pán)內(nèi)的文件數(shù)量,反應(yīng)時(shí)長(zhǎng)存在差異,所以只需要參考最終圖標(biāo)的狀態(tài)是圖中這個(gè)樣子,就是關(guān)聯(lián)成功的狀態(tài)了。
然后,加載云盤(pán)存儲(chǔ),使用以下代碼掛載Google Drive:
# 掛載Google Drive: 如果文件確實(shí)存在于Google Drive中, # 確保正確掛載了Google Drive到Colab。使用以下代碼掛載Google Drive: from google.colab import drive drive.mount('/content/drive')
3.獲取colab對(duì)kaggle.json的訪問(wèn)權(quán)限
‘/content/drive/MyDrive/Colab Notebooks/kaggle.json’ 是你kaggle.json存儲(chǔ)的位置。還記得我建議你盡可能和jupyter筆記本放在一起嗎?只需要把相同的路徑填入就可以。而且也不需要在執(zhí)行下方的復(fù)制操作。
如果放在了其他位置也不要緊,執(zhí)行以下的全部代碼,會(huì)復(fù)制一份kaggle.json到你當(dāng)前的工作目錄里,這個(gè)工作目錄是你第一步設(shè)置的位置。
# 復(fù)制文件到正確的位置: 復(fù)制 kaggle.json 文件到了 # 使用以下代碼檢查文件是否成功復(fù)制到了正確的位置: import shutil shutil.copy("/content/drive/MyDrive/Colab Notebooks/kaggle.json", "/kaggle.json") # 獲取對(duì)kaggle文件的訪問(wèn)權(quán)限 permissions = oct(os.stat("/root/.kaggle/kaggle.json").st_mode)[-3:] print("文件權(quán)限:", permissions)
Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount(“/content/drive”, force_remount=True).
文件權(quán)限: 600
當(dāng)訪問(wèn)權(quán)限返回代碼碼值為600時(shí),表示結(jié)果正常。已經(jīng)獲得了權(quán)限。
4.從Kaggle下載數(shù)據(jù)集到Drive內(nèi)
這段代碼來(lái)自于kaggle的dataset界面,我這里舉個(gè)例子,如果想要獲取這個(gè)數(shù)據(jù)集,那么就可以在這里點(diǎn)擊‘copy API command’,他的內(nèi)容是:
kaggle datasets download -d openfoodfacts/world-food-facts
隨后在jupyter內(nèi)執(zhí)行以下代碼
# 下載原始數(shù)據(jù)到本地云盤(pán)內(nèi) ! kaggle datasets download -d openfoodfacts/world-food-facts -p /content/sample_data
對(duì)參數(shù)的解釋,
-d openfoodfacts/world-food-facts 表示數(shù)據(jù)集名稱:world-food-facts 創(chuàng)建人名稱:openfoodfacts
-p /content/sample_data 指定數(shù)據(jù)集文件下載到Google Drive的對(duì)應(yīng)位置
5.如果下載的是壓縮包格式…
import zipfile # 切換到存儲(chǔ)文件對(duì)應(yīng)的文件夾 os.chdir("/content/sample_data") # 要解壓的文件名 zip_file = "world-food-facts.zip" # 新建的文件夾名稱 extract_folder = "world-food-facts" # 創(chuàng)建新的文件夾 os.makedirs(extract_folder, exist_ok=True) # 解壓文件到新建的文件夾中 with zipfile.ZipFile(zip_file, 'r') as zip_ref: zip_ref.extractall(extract_folder) print("文件已解壓到:", os.path.abspath(extract_folder)) # 重新切換回工作環(huán)境內(nèi) os.chdir("/content/drive/MyDrive/Colab Notebooks")
準(zhǔn)備完畢
ok。開(kāi)始你的表演吧,接下來(lái)的操作你應(yīng)該就全會(huì)了,
import pandas as pd food = pd.read_csv('/content/sample_data/world-food-facts/en.openfoodfacts.org.products.tsv', sep='\t')
<ipython-input-40-3044500f6262>:2: DtypeWarning: Columns (0,3,5,19,20,24,25,26,27,28,36,37,38,39,48) have mixed types. Specify dtype option on import or set low_memory=False.
food = pd.read_csv(‘/content/sample_data/world-food-facts/en.openfoodfacts.org.products.tsv’, sep=‘\t’)
food.head()
是不是熟悉的感覺(jué)。開(kāi)始操作吧!
到此這篇關(guān)于Google colab中如何從kaggle中接入數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Google colab kaggle數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)讓字典保持有序的方法
這篇文章主要介紹了Python讓字典保持有序的方法,涉及Python基于collections模塊中的OrderedDict類實(shí)現(xiàn)控制字典順序的相關(guān)操作技巧,需要的朋友可以參考下2018-02-02python使用正則表達(dá)式提取網(wǎng)頁(yè)URL的方法
這篇文章主要介紹了python使用正則表達(dá)式提取網(wǎng)頁(yè)URL的方法,涉及Python中urllib模塊及正則表達(dá)式的相關(guān)使用技巧,需要的朋友可以參考下2015-05-05Python中input和raw_input的一點(diǎn)區(qū)別
這篇文章主要介紹了Python中input和raw_input的一點(diǎn)區(qū)別,它們都是用來(lái)讀取控制臺(tái)輸入的函數(shù),需要的朋友可以參考下2014-10-10Python3.5以上版本lxml導(dǎo)入etree報(bào)錯(cuò)的解決方案
這篇文章主要介紹了Python3.5以上版本lxml導(dǎo)入etree報(bào)錯(cuò)的解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-06-06對(duì)python 樹(shù)狀嵌套結(jié)構(gòu)的實(shí)現(xiàn)思路詳解
今天小編就為大家分享一篇對(duì)python 樹(shù)狀嵌套結(jié)構(gòu)的實(shí)現(xiàn)思路詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08python開(kāi)發(fā)利器之ulipad的使用實(shí)踐
Ulipad是一個(gè)國(guó)人limodou編寫(xiě)的專業(yè)Python編輯器,它基于wxpython開(kāi)發(fā)的GUI(圖形化界面)。下面這篇文章主要介紹了python開(kāi)發(fā)利器之ulipad的使用實(shí)踐,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-03-03用生成器來(lái)改寫(xiě)直接返回列表的函數(shù)方法
下面小編就為大家?guī)?lái)一篇用生成器來(lái)改寫(xiě)直接返回列表的函數(shù)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05Python實(shí)現(xiàn)實(shí)時(shí)跟隨微信窗口移動(dòng)的GUI界面
Python寫(xiě)一些簡(jiǎn)單的GUI界面也是非常簡(jiǎn)單的,并且Python有著豐富的庫(kù),這些庫(kù)可以很方便我們?nèi)ゲ僮鱓indows系統(tǒng)。本文就來(lái)用Python編寫(xiě)一個(gè)實(shí)時(shí)跟隨微信窗口移動(dòng)的GUI界面吧2023-04-04