Importa i dati nel Google Colaboratory


156

Quali sono i modi comuni per importare i dati privati ​​nei blocchi note di Google Colaboratory? È possibile importare un foglio Google non pubblico? Non puoi leggere dai file di sistema. I documenti introduttivi si collegano a una guida sull'uso di BigQuery , ma sembra un po '... molto.

Risposte:


197

Un quaderno ufficiale di esempio che dimostra l'upload / download di file locali e l'integrazione con Drive e i fogli è disponibile qui: https://colab.research.google.com/notebooks/io.ipynb

Il modo più semplice per condividere file è montare il tuo Google Drive.

Per fare ciò, eseguire quanto segue in una cella di codice:

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

Ti verrà chiesto di visitare un link a CONSENTI "Streaming di file di Google" per accedere al tuo disco. Successivamente verrà mostrato un lungo codice alfanumerico di autenticazione che deve essere inserito nel quaderno di Colab.

Successivamente, i file di Drive verranno montati e potrai sfogliarli con il browser dei file nel pannello laterale.

inserisci qui la descrizione dell'immagine

Ecco un quaderno di esempio completo


3
Un esempio di fogli è ora incluso in un quaderno di esempio in bundle che include anche ricette per Drive e Google Cloud Storage: colab.research.google.com/notebook#fileId=/v2/external/…
— Bob Smith

9
Posso importare una cartella specifica nel mio Drive? Sto condividendo questo colab con qualcun altro e non voglio dare accesso a tutto il mio drive google che contiene informazioni sensibili
— yellow01

4
I file nel tuo Drive non saranno condivisi se condividi il notebook. L'utente dovrà comunque montare la propria unità, che è separata. È possibile condividere i file con quell'utente, se necessario, ma tutto ciò è controllato dai normali ACL Drive. La condivisione di un notebook Colab condivide solo il notebook, non i file di Drive a cui si fa riferimento in quel notebook.
— Bob Smith,

il mio mount ha esito positivo ma non riesco a visualizzare l'elenco dei file nella parte sinistra sotto i file. Eventuali suggerimenti?
— Swapnil B.

3
Non addestrare sui dati nell'unità google montata. Prima copia i dati sul disco locale e poi allenati su di essi. Sarà quasi 10 volte più veloce. Per una copia più veloce, assicurati che i file di dati siano grandi archivi o un numero di quelli più piccoli. Ad esempio: - Non utilizzare 100000 file di immagini. Usa 100 archivi di 1000 immagini ciascuno. In questo modo il caricamento su google drive è anche più veloce, così come la copia da google drive a colab
— saurabheights

47

Caricare

from google.colab import files
files.upload()

Scarica

files.download('filename')

Elenco directory

files.os.listdir()

6
I file caricati sono memorizzati sull'unità google dell'utente o sul server a cui è collegato il notebook?
— RodrikTheReader,

1
Questi file non sono effimeri?
— Acumenus,

Qualche argomento per il caricamento?
— user25004

questa risposta dovrebbe essere al top. La domanda riguarda l'importazione di dati, non il montaggio di Google Drive.
— Fernando Wittmann il

18

Un modo semplice per importare i dati dal tuo googledrive, facendo così risparmiare tempo alle persone (non so perché google semplicemente non elenca questo passo per passo in modo esplicito).

INSTALLARE E AUTENTICARE 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)

CARICAMENTO

se è necessario caricare dati dall'unità locale:

    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])))

esegui e questo mostrerà un pulsante scegli file - trova il tuo file di caricamento - fai clic su Apri

Dopo il caricamento, verrà visualizzato:

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

CREA FILE PER IL TACCUINO

Se il tuo file di dati è già nel tuo gdrive, puoi saltare a questo passaggio.

Ora è nel tuo google drive. Trova il file nel tuo google drive e fai clic con il tasto destro. Fai clic su ottieni "link condivisibile". Si aprirà una finestra con:

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

Copia - "29PGh8XCts3mlMP6zRphvnIcbv27boawn" - questo è l'ID del file.

Nel tuo taccuino:

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

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

IMPORTARE DATI NEL TACCUINO

Per importare i dati caricati nel notebook (un file json in questo esempio - il modo in cui si carica dipenderà dal tipo di file / dati - .txt, .csv ecc.):

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

Ora puoi stampare per vedere che i dati sono lì:

    print(sample_uploaded_data)

1
Vale la pena sottolineare che il suggerimento UPLOADING , via google.colab.files.upload()non sembra funzionare né su Firefox né su Safari, solo Chrome. Vedi qui
— 5agado,

15

passaggio 1- Montare Google Drive su Collaboratory

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

passaggio 2- Ora vedrai i tuoi file di Google Drive nel riquadro a sinistra (Esplora file). Fare clic con il tasto destro sul file che è necessario importare e selezionare çopy path. Quindi importare come al solito in Panda, usando questo percorso copiato.

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

Fatto!


Vince su chiarezza e brevità e ha pari efficacia. Non vedo alcun vantaggio nei modi molto più coinvolti per farlo.
— Elroch,

7

Il modo più semplice che ho fatto è:

  1. Crea repository su github con il tuo set di dati
  2. Clona il tuo repository con! git clone --recursive [GITHUB LINK REPO]
  3. Trova dove sono i tuoi dati (comando! Ls)
  4. Apri il file con i panda mentre lo fai nel normale taccuino di Giove.

Ciao, con questo gapminder = pd.read_csv ("Analisi dei dati / coppie di grafici / dati / gapminder_data.csv") Ricevo solo la variabile "versione https: // .." con solo 2 osservazioni
— Mukul Sharma,

2
Questa soluzione non funzionerà se una singola dimensione del file è superiore al limite consentito da github che se 20 MB suppongo in versione gratuita.
— Akshay Soam,

7

Ciò ti consente di caricare i tuoi file tramite Google Drive.

Esegui il codice qui sotto (l'ho trovato da qualche parte in precedenza ma non riesco a trovare di nuovo la fonte - crediti per chi l'ha scritto!):

!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}

Fai clic sul primo link visualizzato che ti chiederà di accedere a Google; successivamente verrà visualizzato un altro che chiederà l'autorizzazione per accedere a Google Drive.

Quindi, esegui questo che crea una directory denominata "unità" e collega il tuo Google Drive ad esso:

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

Se lo fai !lsora, ci sarà un'unità di directory e se lo fai !ls drivepuoi vedere tutti i contenuti del tuo Google Drive.

Quindi, ad esempio, se salvo il mio file chiamato abc.txtin una cartella chiamata ColabNotebooksin Google Drive, ora posso accedervi tramite un percorsodrive/ColabNotebooks/abc.txt



5

Sulla barra di sinistra di ogni laboratorio c'è una sezione chiamata "File". Carica lì i tuoi file e usa questo percorso

"/content/YourFileName.extension"

ex: pd.read_csv('/content/Forbes2015.csv');


2
Assicurati di aver caricato direttamente nella directory principale e non nella directory 'sample_data'. Inoltre, è possibile rimuovere il "contenuto" e scrivere semplicemente il nome del file come:pd.read_csv('Forbes2015.csv');
— Vivek Solanki

Se il problema persiste, puoi dirmi il messaggio di errore?
— Vivek Solanki,

@flashliquid Non necessario. Funziona anche senza '/'. Puoi provarlo su colab.
— Vivek Solanki il

3

La soluzione più semplice che ho trovato finora che funziona perfettamente con file CSV di piccole e medie dimensioni è:

  1. Crea un segreto su gist.github.com e carica (o copia e incolla il contenuto di) il tuo file.
  2. Fai clic sulla vista Raw e copia l'URL del file raw.
  3. Utilizzare l'URL copiato come indirizzo del file quando si chiama pandas.read_csv(URL)

Ciò può o meno funzionare per la lettura di un file di testo riga per riga o file binari.


1
È importante notare che mentre i segreti sono difficili da scoprire che non sono privati, quindi chiunque usi questo approccio dovrebbe fare attenzione.
— Grae,

2

Importazione semplice e veloce da 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

Per coloro che, come me, provenivano da Google per la parola chiave "upload file colab":

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

1

Puoi anche utilizzare le mie implementazioni su google.colab e PyDrive su https://github.com/ruelj2/Google_drive che lo rendono molto più semplice.

!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()  

Quindi, se vuoi caricare tutti i file in una directory di Google Drive, basta

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

O solo un file specifico con

Gd.load_file(local_dir, file_ID)

In questo caso, cos'è "drive_dir_ID?"
— Serpentese,

Come menzionato nel repository git, drive_dir_ID è l'ID Google Drive corrispondente della directory richiesta. Per maggiori informazioni, consulta github.com/ruelj2/Google_drive . C'è anche un chiaro esempio di utilizzo.
— Jean-Christophe,

1

Come menzionato da @Vivek Solanki, ho anche caricato il mio file nella dashboard del collegio nella sezione "File". Basta prendere nota di dove è stato caricato il file. Per me ha train_data = pd.read_csv('/fileName.csv')funzionato.


1

in google colabs se questa è la tua prima volta,

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

eseguire questi codici e passare attraverso l'outputlink quindi passare il pass-prase alla casella

quando copi puoi copiare come segue, vai al file fai clic destro e copia il percorso *** non dimenticare di rimuovere "/ content"

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

1
  1. Puoi montare su google drive eseguendo quanto segue

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

  2. In seguito Per l'addestramento, copia i dati da gdrive alla cartella principale di colab.

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

dove primo percorso è il percorso gdrive e secondo è la cartella principale di colab.

In questo modo la formazione è più veloce per dati di grandi dimensioni.


0

È stato risolto, trova i dettagli qui e utilizza la funzione seguente: /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

Ecco un modo per importare i file da Google Drive ai notebook.

apri jupyter notebook ed esegui il codice seguente e completa il processo di autenticazione

!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}

una volta terminato con il codice sopra, esegui il codice qui sotto per montare Google Drive

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

Importazione di file da google drive su notebook (ad es. Colab_Notebooks / db.csv)

diciamo che il file del set di dati nella cartella Colab_Notebooks e il suo nome è db.csv

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

spero possa essere d'aiuto


0

se vuoi farlo senza codice è abbastanza facile. Comprimi la tua cartella nel mio caso

dataset.zip

quindi in Colab fai clic destro sulla cartella in cui vuoi inserire questo file e premi Carica e carica questo file zip. Dopodiché scrivi questo comando Linux.

!unzip <your_zip_file_name>

puoi vedere che i tuoi dati sono stati caricati correttamente.


0

Se la dimensione del set di dati è inferiore a 25 MB, il modo più semplice per caricare un file CSV è dal repository GitHub.

  1. Fare clic sul set di dati nel repository
  2. Fai clic sul pulsante Visualizza Raw
  3. Copia il link e memorizzalo in una variabile
  4. caricare la variabile in Pandas read_csv per ottenere il frame di dati

Esempio:

import pandas as pd
url = 'copied_raw_data_link'
df1 = pd.read_csv(url)
df1.head()
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.