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