นำเข้าข้อมูลไปยัง Google Colaboratory


156

วิธีทั่วไปในการนำเข้าข้อมูลส่วนตัวไปยังสมุดบันทึกของ Google Colaboratory คืออะไร เป็นไปได้หรือไม่ที่จะนำเข้าแผ่นงาน Google ที่ไม่ใช่แบบสาธารณะ? คุณไม่สามารถอ่านจากไฟล์ระบบ เอกสารแนะนำเบื้องต้นเชื่อมโยงไปยังคำแนะนำในการใช้ BigQueryแต่ดูเหมือนจะน้อยมาก ...

คำตอบ:


197

ตัวอย่างโน๊ตบุ๊คอย่างเป็นทางการที่แสดงให้เห็นถึงการอัพโหลด / ดาวน์โหลดและการผสานรวมกับไดรฟ์และแผ่นงานท้องถิ่นมีให้ที่นี่: https://colab.research.google.com/notebooks/io.ipynb

วิธีที่ง่ายที่สุดในการแชร์ไฟล์คือติดตั้ง Google Drive ของคุณ

เมื่อต้องการทำสิ่งนี้ให้เรียกใช้สิ่งต่อไปนี้ในเซลล์รหัส:

from google.colab import drive
drive.mount('/content/drive')

มันจะขอให้คุณเยี่ยมชมลิงค์ไปยัง "สตรีมไฟล์ Google" เพื่อเข้าถึงไดรฟ์ของคุณ หลังจากนั้นรหัสตัวอักษรและตัวเลขที่ยาวจะปรากฏขึ้นซึ่งจำเป็นต้องป้อนในสมุดบันทึกของ Colab

หลังจากนั้นไฟล์ Drive ของคุณจะถูกเมาท์และคุณสามารถเรียกดูไฟล์ด้วยเบราว์เซอร์ไฟล์ในแผงด้านข้าง

ป้อนคำอธิบายรูปภาพที่นี่

นี่คือตัวอย่างโน๊ตบุ๊คแบบเต็ม


3
ตอนนี้มีตัวอย่างแผ่นงานรวมอยู่ในสมุดบันทึกตัวอย่างที่มาพร้อมกับสูตรสำหรับ Drive และ Google Cloud Storage: colab.research.google.com/notebook#fileId=/v2/external/ …
Bob Smith

9
ฉันสามารถนำเข้าโฟลเดอร์เฉพาะในไดรฟ์ของฉันได้หรือไม่ ฉันแบ่งปัน colab นี้กับคนอื่นและฉันไม่ต้องการให้สิทธิ์การเข้าถึงไดรฟ์ google ทั้งหมดของฉันซึ่งมีข้อมูลที่ละเอียดอ่อน
yellow01

4
ไฟล์ในไดรฟ์ของคุณจะไม่ถูกแชร์หากคุณแชร์สมุดบันทึก ผู้ใช้ยังคงต้องติดตั้งไดรฟ์ของตัวเองซึ่งแยกออกจากกัน คุณสามารถแชร์ไฟล์กับผู้ใช้นั้นได้หากจำเป็น แต่ทั้งหมดนั้นควบคุมโดย Drive ACL ปกติ การแชร์สมุดบันทึก Colab แบ่งปันเฉพาะสมุดบันทึกไม่ใช่ไฟล์ไดรฟ์ที่อ้างอิงในสมุดบันทึกนั้น
Bob Smith

เมานต์ของฉันสำเร็จ แต่ฉันไม่เห็นรายชื่อไฟล์ทางด้านซ้ายใต้ไฟล์ ข้อเสนอแนะใด ๆ
Swapnil B.

3
อย่าฝึกอบรมข้อมูลใน google ไดรฟ์ที่ติดตั้ง ขั้นแรกให้คัดลอกข้อมูลไปยังไดรฟ์ในเครื่องจากนั้นทำการฝึกฝน มันจะเร็วขึ้นเกือบ 10 เท่า สำหรับการคัดลอกที่เร็วขึ้นตรวจสอบให้แน่ใจว่าไฟล์ข้อมูลเป็นไฟล์เก็บถาวรขนาดใหญ่หรือไฟล์ที่เล็กกว่า ตัวอย่างเช่น: - อย่าใช้ไฟล์ภาพ 100,000 ไฟล์ ใช้ 100 ภาพ 1,000 ภาพต่อหนึ่งภาพ วิธีนี้การอัปโหลดไปยัง Google ไดรฟ์ทำได้เร็วขึ้นและการคัดลอกจาก google ไดรฟ์ไปยัง colab
saurabheights

47

ที่อัพโหลด

from google.colab import files
files.upload()

ดาวน์โหลด

files.download('filename')

รายการไดเรกทอรี

files.os.listdir()

6
ไฟล์ที่อัปโหลดเก็บอยู่ในไดรฟ์ google ของผู้ใช้หรือเซิร์ฟเวอร์ที่เชื่อมต่อโน้ตบุ๊กหรือไม่
RodrikTheReader

1
ไฟล์เหล่านี้ไม่ได้ชั่วคราวหรือ?
คิวเมนตัส

มีอาร์กิวเมนต์สำหรับการอัปโหลดไหม
user25004

คำตอบนี้ควรจะอยู่ด้านบน คำถามเกี่ยวกับการนำเข้าข้อมูลไม่ใช่การติดตั้งไดรฟ์ของ Google
Fernando Wittmann

18

วิธีง่ายๆในการนำเข้าข้อมูลจาก googledrive ของคุณการทำเช่นนี้ช่วยประหยัดเวลาผู้คน (ไม่รู้ว่าเพราะเหตุใด google จึงไม่แสดงรายการทีละขั้นตอนอย่างชัดเจน)

PYDRIVE ติดตั้งและตรวจสอบโดยอัตโนมัติ

     !pip install -U -q PyDrive ## you will have install for every colab session

     from pydrive.auth import GoogleAuth
     from pydrive.drive import GoogleDrive
     from google.colab import auth
     from oauth2client.client import GoogleCredentials

     # 1. Authenticate and create the PyDrive client.
     auth.authenticate_user()
     gauth = GoogleAuth()
     gauth.credentials = GoogleCredentials.get_application_default()
     drive = GoogleDrive(gauth)

อัปโหลด

หากคุณต้องการอัปโหลดข้อมูลจากไดรฟ์ในเครื่อง:

    from google.colab import files

    uploaded = files.upload()

    for fn in uploaded.keys():
       print('User uploaded file "{name}" with length {length} bytes'.format(name=fn, length=len(uploaded[fn])))

ดำเนินการและจะแสดงปุ่มเลือกไฟล์ - ค้นหาไฟล์อัพโหลดของคุณ - คลิกเปิด

หลังจากอัพโหลดแล้วมันจะแสดง:

    sample_file.json(text/plain) - 11733 bytes, last modified: x/xx/2018 - %100 done
    User uploaded file "sample_file.json" with length 11733 bytes

สร้างไฟล์สำหรับ NOTEBOOK

หากไฟล์ข้อมูลของคุณอยู่ใน gdrive ของคุณแล้วคุณสามารถข้ามไปยังขั้นตอนนี้ได้

ตอนนี้มันอยู่ในไดรฟ์ google ของคุณ ค้นหาไฟล์ใน google ไดรฟ์ของคุณและคลิกขวา คลิกรับ 'ลิงก์ที่แชร์ได้' คุณจะได้รับหน้าต่างด้วย:

    https://drive.google.com/open?id=29PGh8XCts3mlMP6zRphvnIcbv27boawn

คัดลอก - '29PGh8XCts3mlMP6zRphvnIcbv27boawn' - นั่นคือ ID ไฟล์

ในสมุดบันทึกของคุณ:

    json_import = drive.CreateFile({'id':'29PGh8XCts3mlMP6zRphvnIcbv27boawn'})

    json_import.GetContentFile('sample.json') - 'sample.json' is the file name that will be accessible in the notebook.

นำเข้าข้อมูลเข้าสู่ NOTEBOOK

ในการนำเข้าข้อมูลที่คุณอัปโหลดไปยังสมุดบันทึก (ไฟล์ json ในตัวอย่างนี้ - วิธีที่คุณโหลดจะขึ้นอยู่กับประเภทไฟล์ / ข้อมูล - .txt, .csv เป็นต้น):

    sample_uploaded_data = json.load(open('sample.json'))

ตอนนี้คุณสามารถพิมพ์เพื่อดูข้อมูล:

    print(sample_uploaded_data)

1
เป็นชี้ให้เห็นว่าคำแนะนำการอัปโหลดผ่านgoogle.colab.files.upload()ดูเหมือนจะไม่ทำงานบน Firefox หรือ Safari, Chrome เท่านั้น ดูที่นี่
5agado

15

ขั้นตอนที่ 1 ติดตั้ง Google Drive ของคุณเพื่อทำงานร่วมกัน

from google.colab import drive
drive.mount('/content/gdrive')

ขั้นตอนที่ 2- ตอนนี้คุณจะเห็นไฟล์ Google Drive ในบานหน้าต่างด้านซ้าย (สำรวจไฟล์) คลิกขวาที่ไฟล์ที่คุณต้องการนำเข้าและเลือกçopy path จากนั้นนำเข้าตามปกติในแพนด้าโดยใช้เส้นทางที่คัดลอกนี้

import pandas as pd
df=pd.read_csv('gdrive/My Drive/data.csv')

ทำ!


ชนะในความชัดเจนและความกะทัดรัดและมีประสิทธิภาพเท่าเทียมกัน ฉันไม่เห็นประโยชน์ใด ๆ จากวิธีการที่เกี่ยวข้องในการทำสิ่งนี้
Elroch

7

วิธีที่ง่ายที่สุดที่ฉันทำคือ:

  1. สร้างพื้นที่เก็บข้อมูลบน Github ด้วยชุดข้อมูลของคุณ
  2. โคลนที่เก็บของคุณด้วย! git clone - recursive [REPT ลิงค์ GITHUB]
  3. ค้นหาข้อมูลของคุณ (คำสั่ง! ls)
  4. เปิดไฟล์ด้วยนุ่นเหมือนที่คุณทำในสมุดบันทึก jupyter ปกติ

สวัสดีด้วย gapminder นี้ = pd.read_csv ("การวิเคราะห์ข้อมูล / pairplots / data / gapminder_data.csv") ฉันเพิ่งได้รับ "รุ่น https: // .. " ตัวแปรที่มีเพียง 2 หอสังเกตการณ์
Mukul Sharma

2
วิธีการแก้ปัญหานี้จะไม่ทำงานหากขนาดไฟล์เดียวเกินขีด จำกัด GitHub ที่อนุญาตซึ่งถ้า 20MB ฉันเดาในรุ่นฟรี
Akshay Soam

7

สิ่งนี้ช่วยให้คุณอัปโหลดไฟล์ผ่าน Google ไดรฟ์

เรียกใช้รหัสด้านล่าง (พบที่นี่ก่อนหน้านี้ แต่ฉันไม่สามารถหาแหล่งที่มาอีกครั้ง - เครดิตกับใครก็ตามที่เขียนมัน!):

!apt-get install -y -qq software-properties-common python-software-properties module-init-tools
!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
!apt-get update -qq 2>&1 > /dev/null
!apt-get -y install -qq google-drive-ocamlfuse fuse

from google.colab import auth
auth.authenticate_user()
from oauth2client.client import GoogleCredentials
creds = GoogleCredentials.get_application_default()
import getpass

!google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} < /dev/null 2>&1 | grep URL
vcode = getpass.getpass()
!echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}

คลิกที่ลิงค์แรกที่ปรากฏขึ้นซึ่งจะแจ้งให้คุณลงชื่อเข้าใช้ Google หลังจากนั้นอีกอันจะปรากฏขึ้นซึ่งจะขออนุญาตให้เข้าถึง Google Drive ของคุณ

จากนั้นเรียกใช้สิ่งนี้ซึ่งสร้างไดเรกทอรีชื่อ 'ไดรฟ์' และเชื่อมโยง Google Drive ของคุณไปที่:

!mkdir -p drive
!google-drive-ocamlfuse drive

หากคุณทำ!lsตอนนี้จะมีไดรฟ์ไดเรกทอรีและถ้าคุณทำ!ls driveคุณสามารถดูเนื้อหาทั้งหมดของ Google Drive ของคุณ

ตัวอย่างเช่นถ้าฉันบันทึกไฟล์ที่เรียกว่าabc.txtในโฟลเดอร์ที่เรียกว่าColabNotebooksใน Google Drive ของฉันตอนนี้ฉันสามารถเข้าถึงไฟล์ผ่านเส้นทางdrive/ColabNotebooks/abc.txt



5

บนแถบด้านซ้ายของ colaboratory มีส่วนที่เรียกว่า "ไฟล์" อัปโหลดไฟล์ของคุณที่นั่นและใช้เส้นทางนี้

"/content/YourFileName.extension"

อดีต: pd.read_csv('/content/Forbes2015.csv');


2
ตรวจสอบให้แน่ใจว่าคุณได้อัปโหลดโดยตรงไปยังไดเรกทอรีรากและไม่อยู่ในไดเรกทอรี 'sample_data' นอกจากนี้คุณสามารถลบ "เนื้อหา" และเพียงแค่เขียนชื่อไฟล์เช่น:pd.read_csv('Forbes2015.csv');
Vivek Solanki

หากยังใช้งานไม่ได้คุณสามารถบอกข้อความแจ้งความผิดพลาดได้หรือไม่
Vivek Solanki

@flashliquid ไม่จำเป็น มันทำงานได้แม้ไม่มี '/' คุณสามารถทดสอบกับ colab
Vivek Solanki

3

ทางออกที่ง่ายที่สุดที่ฉันได้ค้นพบซึ่งใช้งานได้ดีกับไฟล์ CSV ขนาดเล็กถึงขนาดกลางคือ:

  1. สร้างส่วนสำคัญใน gist.github.com และอัปโหลด (หรือคัดลอกวางเนื้อหาของ) ไฟล์ของคุณ
  2. คลิกที่ดิบมุมมองและคัดลอก URL ไฟล์ดิบ
  3. ใช้ URL ที่คัดลอกเป็นที่อยู่ไฟล์เมื่อคุณโทร pandas.read_csv(URL)

สิ่งนี้อาจหรืออาจใช้ไม่ได้กับการอ่านไฟล์ข้อความแบบทีละบรรทัดหรือไฟล์ไบนารี่


1
เป็นสิ่งสำคัญที่จะต้องทราบว่าในขณะที่ส่วนสำคัญของความลับนั้นยากที่จะค้นพบว่าพวกเขาไม่ได้เป็นส่วนตัวดังนั้นใครก็ตามที่ใช้วิธีนี้ควรระวัง
Grae

2

การนำเข้าอย่างรวดเร็วและง่ายดายจาก Dropbox:

!pip install dropbox
import dropbox
access_token = 'YOUR_ACCESS_TOKEN_HERE' # https://www.dropbox.com/developers/apps
dbx = dropbox.Dropbox(access_token)

# response = dbx.files_list_folder("")

metadata, res = dbx.files_download('/dataframe.pickle2')

with open('dataframe.pickle2', "wb") as f:
  f.write(res.content)

2

สำหรับคนที่ชอบฉันมาจาก Google สำหรับคำหลัก "upload file colab":

from google.colab import files
uploaded = files.upload()

1

คุณยังสามารถใช้การใช้งานของฉันใน google.colab และ PyDrive ได้ที่https://github.com/ruelj2/Google_driveซึ่งทำให้ง่ายขึ้นมาก

!pip install - U - q PyDrive  
import os  
os.chdir('/content/')  
!git clone https://github.com/ruelj2/Google_drive.git  

from Google_drive.handle import Google_drive  
Gd = Google_drive()  

จากนั้นหากคุณต้องการโหลดไฟล์ทั้งหมดในไดเรกทอรี Google Drive เพียงแค่

Gd.load_all(local_dir, drive_dir_ID, force=False)  

หรือเพียงแค่ไฟล์ที่ระบุด้วย

Gd.load_file(local_dir, file_ID)

ในกรณีนี้ "drive_dir_ID คืออะไร"
Parseltongue

ดังที่กล่าวไว้ใน git repo drive_dir_ID เป็นรหัส Google Drive ที่สอดคล้องกันของไดเรกทอรีที่ร้องขอ สำหรับข้อมูลเพิ่มเติมโปรดตรวจสอบgithub.com/ruelj2/Google_drive นอกจากนี้ยังมีตัวอย่างการใช้งานที่ชัดเจน
Jean-Christophe

1

ดังที่ @Vivek Solanki พูดถึงฉันยังอัปโหลดไฟล์ของฉันลงในแผงควบคุม colaboratory ในส่วน "ไฟล์" เพียงจดที่ไฟล์ถูกอัพโหลด สำหรับฉัน train_data = pd.read_csv('/fileName.csv')ทำงาน


1

ใน google colabs ถ้านี่เป็นครั้งแรกของคุณ

from google.colab import drive
drive.mount('/content/drive')

เรียกใช้รหัสเหล่านี้และผ่าน outputlink แล้วผ่าน pass-prase ไปที่กล่อง

เมื่อคุณคัดลอกคุณสามารถคัดลอกได้ดังนี้ไปที่ไฟล์คลิกขวาและคัดลอกพา ธ *** อย่าลืมลบ "/ content"

f = open("drive/My Drive/RES/dimeric_force_field/Test/python_read/cropped.pdb", "r")

1
  1. คุณสามารถเชื่อมต่อกับไดรฟ์ของ Google ได้โดยดำเนินการดังนี้

    from google.colab import drive drive.mount('/content/drive')

  2. หลังจากนั้นสำหรับการฝึกอบรมการคัดลอกข้อมูลจาก gdrive ไปยังโฟลเดอร์ colab root

!cp -r '/content/drive/My Drive/Project_data' '/content'

โดยที่ path แรกคือ gdrive path และที่สองคือโฟลเดอร์ colab root

วิธีนี้การฝึกอบรมจะเร็วกว่าสำหรับข้อมูลขนาดใหญ่


0

ได้รับการแก้ไขค้นหารายละเอียดที่นี่และโปรดใช้ฟังก์ชั่นด้านล่าง: /programming/47212852/how-to-import-and-read-a-shelve-or-numpy-file-in-google -colaboratory / 49467113 # 49467113

from google.colab import files
import zipfile, io, os

    def read_dir_file(case_f):
        # author: yasser mustafa, 21 March 2018  
        # case_f = 0 for uploading one File and case_f = 1 for uploading one Zipped Directory
        uploaded = files.upload()    # to upload a Full Directory, please Zip it first (use WinZip)
        for fn in uploaded.keys():
            name = fn  #.encode('utf-8')
            #print('\nfile after encode', name)
            #name = io.BytesIO(uploaded[name])
        if case_f == 0:    # case of uploading 'One File only'
            print('\n file name: ', name)
            return name
        else:   # case of uploading a directory and its subdirectories and files
            zfile = zipfile.ZipFile(name, 'r')   # unzip the directory 
            zfile.extractall()
            for d in zfile.namelist():   # d = directory
                print('\n main directory name: ', d)
                return d
    print('Done!')

0

นี่เป็นวิธีหนึ่งในการนำเข้าไฟล์จากไดรฟ์ google ไปยังโน้ตบุ๊ก

เปิดโน๊ตบุ๊ค jupyter และเรียกใช้รหัสด้านล่างและทำกระบวนการตรวจสอบสิทธิ์ให้เสร็จสมบูรณ์

!apt-get install -y -qq software-properties-common python-software-properties   module-init-tools
!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
!apt-get update -qq 2>&1 > /dev/null
!apt-get -y install -qq google-drive-ocamlfuse fuse
from google.colab import auth
auth.authenticate_user()
from oauth2client.client import GoogleCredentials
creds = GoogleCredentials.get_application_default()
import getpass
!google-drive-ocamlfuse -headless -id={creds.client_id} -secret=  {creds.client_secret} < /dev/null 2>&1 | grep URL
vcode = getpass.getpass()
!echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}

เมื่อคุณทำกับรหัสข้างต้นเรียกใช้รหัสด้านล่างเพื่อ mount google ไดรฟ์

!mkdir -p drive
!google-drive-ocamlfuse drive

การนำเข้าไฟล์จาก google ไดรฟ์ไปยังโน้ตบุ๊ก (เช่น: Colab_Notebooks / db.csv)

สมมติว่าไฟล์ชุดข้อมูลของคุณในโฟลเดอร์ Colab_Notebooks และชื่อมันคือ db.csv

import pandas as pd
dataset=pd.read_csv("drive/Colab_Notebooks/db.csv")

ฉันหวังว่ามันจะช่วย


0

ถ้าคุณต้องการทำสิ่งนี้โดยไม่ใช้รหัสมันค่อนข้างง่าย ซิปโฟลเดอร์ของคุณในกรณีของฉันมันเป็น

dataset.zip

จากนั้นใน Colab คลิกขวาที่โฟลเดอร์ที่คุณต้องการวางไฟล์นี้แล้วกดอัปโหลดและอัปโหลดไฟล์ซิปนี้ หลังจากนั้นเขียนคำสั่ง Linux นี้

!unzip <your_zip_file_name>

คุณสามารถดูข้อมูลของคุณอัปโหลดได้สำเร็จ


0

หากขนาดชุดข้อมูลน้อยกว่า 25mb วิธีที่ง่ายที่สุดในการอัปโหลดไฟล์ CSV มาจากที่เก็บ GitHub ของคุณ

  1. คลิกที่ชุดข้อมูลในที่เก็บ
  2. คลิกที่ปุ่มดู Raw
  3. คัดลอกลิงค์และเก็บไว้ในตัวแปร
  4. โหลดตัวแปรลงใน Pandas read_csv เพื่อรับดาต้าเฟรม

ตัวอย่าง:

import pandas as pd
url = 'copied_raw_data_link'
df1 = pd.read_csv(url)
df1.head()
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.