web-dev-qa-db-fra.com

Importer des données dans Google Colaboratory

Quels sont les moyens courants d'importer des données privées dans les cahiers Google Colaboratory? Est-il possible d'importer une fiche Google non publique? Vous ne pouvez pas lire à partir de fichiers système. Les documents d’introduction renvoient à un guide sur l’utilisation de BigQuery , mais cela semble un peu ... beaucoup.

87
Grae

Un exemple de bloc-notes officiel illustrant le chargement/téléchargement de fichiers locaux et l'intégration avec Drive et les feuilles est disponible ici: https://colab.research.google.com/notebooks/io.ipynb

Le moyen le plus simple de partager des fichiers est de monter votre Google Drive.

Pour ce faire, exécutez ce qui suit dans une cellule de code:

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

Ensuite, vos fichiers Drive seront montés et vous pourrez les parcourir à l'aide du navigateur de fichiers situé dans le panneau latéral.

enter image description here

Voici un exemple de bloc-notes complet

111
Bob Smith

Télécharger

from google.colab import files
files.upload()

Télécharger

files.download('filename')

Répertoire de la liste

files.os.listdir()
25
井上智文

Un moyen simple d’importer des données à partir de votre disque de googled, ce qui fait gagner du temps aux gens (je ne sais pas pourquoi Google ne répertorie pas cette étape par étape de manière explicite). 

INSTALLER ET AUTHENTIFIER 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)

TÉLÉCHARGEMENT

si vous avez besoin de télécharger des données à partir d'un lecteur local: 

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

exécuter et cela affichera un bouton choisir un fichier - trouvez votre fichier de téléchargement - cliquez sur Ouvrir

Après le téléchargement, il affichera: 

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

CREER UN FICHIER POUR NOTES

Si votre fichier de données est déjà dans votre lecteur, vous pouvez passer à cette étape. 

Maintenant, c'est dans votre lecteur Google. Recherchez le fichier dans votre lecteur google et faites un clic droit. Cliquez sur obtenir le lien partageable. Vous obtiendrez une fenêtre avec: 

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

Copier - '29PGh8XCts3mlMP6zRphvnIcbv27boawn' - c'est l'ID du fichier. 

Dans ton cahier:

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

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

IMPORTATION DE DONNÉES DANS UN CAHIER DE NOTES

Pour importer les données que vous avez téléchargées dans le bloc-notes (un fichier json dans cet exemple - le mode de chargement dépend du type de fichier/de données - .txt, .csv, etc.): 

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

Maintenant, vous pouvez imprimer pour voir les données sont là:

    print(sample_uploaded_data)
15
E G

La manière la plus simple que j'ai faite est: 

  1. Faire un dépôt sur github avec votre jeu de données 
  2. Clonez votre référentiel avec! clone de git --recursive [GITHUB LINK REPO]
  3. Trouvez où sont vos données (commande! Ls)
  4. Ouvrez le fichier avec les pandas comme vous le faites dans le cahier Jupyter normal 
6
Rafał B.

Cela vous permet de télécharger vos fichiers via Google Drive.

Exécutez le code ci-dessous (trouvé ceci quelque part précédemment mais je ne trouve plus la source - remerciement de celui qui l'a écrit!):

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

Cliquez sur le premier lien qui s'affiche pour vous inviter à vous connecter à Google. ensuite, un autre message apparaîtra pour vous demander l'autorisation d'accéder à votre Google Drive.

Ensuite, lancez ceci, ce qui crée un répertoire nommé 'lecteur' et lie votre Google Drive à celui-ci:

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

Si vous faites maintenant un !ls, il y aura un lecteur de répertoire. Si vous faites un !ls drive, vous pourrez voir tout le contenu de votre Google Drive.

Ainsi, par exemple, si je sauvegarde mon fichier appelé abc.txt dans un dossier appelé ColabNotebooks de Google Drive, je peux désormais y accéder via un chemin drive/ColabNotebooks/abc.txt.

6
yl_low

Importation rapide et facile depuis 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)
3
delica

étape 1- Montez votre Google Drive sur Collaboratory

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

Étape 2- Vous verrez maintenant vos fichiers Google Drive dans le volet de gauche (Explorateur de fichiers). Cliquez avec le bouton droit de la souris sur le fichier que vous devez importer et sélectionnez çopie chemin ..__, puis importez comme d'habitude dans les pandas en utilisant ce chemin copié.

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

Terminé!

3
Garima Jain

La solution la plus simple que j'ai trouvée jusqu'à présent et qui fonctionne parfaitement pour les fichiers CSV de taille petite à moyenne est la suivante:

  1. Créez un Gist secret sur Gist.github.com et téléchargez (ou copiez-collez le contenu de) votre fichier.
  2. Cliquez sur la vue Raw et copiez l'URL du fichier brut.
  3. Utilisez l'URL copiée comme adresse de fichier lorsque vous appelez pandas.read_csv(URL)

Cela peut ou peut ne pas fonctionner pour lire un fichier texte ligne par ligne ou des fichiers binaires.

2
Borhan Kazimipour

Dans la barre de gauche de tout laboratoire, vous trouverez une section intitulée "Fichiers" . Téléchargez vos fichiers ici et utilisez ce chemin. 

"/content/YourFileName.extension"

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

1
Vivek Solanki

Vous pouvez également utiliser mes implémentations sur google.colab et PyDrive à l’adresse https://github.com/ruelj2/Google_drive , ce qui facilite grandement les choses.

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

Ensuite, si vous souhaitez charger tous les fichiers d’un répertoire Google Drive, 

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

Ou juste un fichier spécifique avec

Gd.load_file(local_dir, file_ID)
1
Jean-Christophe

Il a été résolu, trouvez les détails ici et utilisez la fonction ci-dessous: https://stackoverflow.com/questions/47212852/how-to-import-and-read-a-shelve-or-numpy- fichier-dans-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
Yasser Mustafa

si vous voulez faire cela sans code, c'est assez facile. Zip votre dossier dans mon cas il est

dataset.Zip

ensuite, dans Colab, cliquez avec le bouton droit de la souris sur le dossier dans lequel vous souhaitez placer ce fichier et appuyez sur Télécharger, puis téléchargez ce fichier Zip. Après cela, écrivez cette commande Linux.

!unzip <your_Zip_file_name>

vous pouvez voir que vos données ont été téléchargées avec succès.

0
Arham Aalam

Voici un moyen d'importer des fichiers de Google Drive dans des cahiers.

ouvrez le cahier jupyter, exécutez le code ci-dessous et terminez le processus d'authentification

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

une fois que vous avez terminé avec le code ci-dessus, exécutez le code ci-dessous pour monter Google Drive.

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

Importation de fichiers de google drive vers des cahiers (Ex: Colab_Notebooks/db.csv)

disons que votre fichier de données dans le dossier Colab_Notebooks est db.csv.

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

J'espère que ça aide 

0
Ravi G