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.