Importer des données dans Google Colaboratory
quelles sont les façons courantes d'importer des données privées dans Google colaboratory notebooks? Est-il possible d'importer une feuille Google non publique? Vous ne pouvez pas lire les fichiers système. Les docs d'introduction lient à un guide sur L'utilisation de BigQuery , mais cela semble un peu... beaucoup.
9 réponses
un exemple officiel de bloc-notes démontrant le téléchargement / Téléchargement de fichiers locaux et l'intégration avec le lecteur et les feuilles est disponible ici: https://colab.research.google.com/notebooks/io.ipynb
la façon la plus simple de partager des fichiers est de monter votre GoogleDrive.
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 de disque seront montés et vous pouvez les parcourir avec le navigateur de fichiers dans le panneau latéral.
Voici une exemple complet d'ordinateur portable
Télécharger
from google.colab import files
files.upload()
télécharger
files.download('filename')
répertoire
files.os.listdir()
simple façon d'importer des données de votre googledrive-ce faire gagner du temps aux gens (ne sais pas pourquoi google ne fait tout simplement pas cette liste étape par étape explicitement).
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)
UPLOADING
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 fichier - trouver 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
CRÉER FICHIER POUR NOTEBOOK
Si votre fichier de données est déjà dans votre gdrive, vous pouvez sautez cette étape.
maintenant il est dans votre lecteur google. Trouver le fichier dans google drive et cliquez à droite. Cliquez sur le lien partageable get'.'Vous obtiendrez une fenêtre avec:
https://drive.google.com/open?id=29PGh8XCts3mlMP6zRphvnIcbv27boawn
Copy - '29PGh8XCts3mlMP6zRphvnIcbv27boawn' - qui est l'ID du fichier.
dans votre carnet:
json_import = drive.CreateFile({'id':'29PGh8XCts3mlMP6zRphvnIcbv27boawn'})
json_import.GetContentFile('sample.json') - 'sample.json' is the file name that will be accessible in the notebook.
IMPORTER DES DONNÉES DANS NOTEBOOK
pour importer les données que vous avez téléchargées dans le notebook (un fichier json dans cet exemple - comment vous chargez dépendra du type de fichier/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)
la façon la plus simple que j'ai faite est:
- Faire de dépôt sur github avec votre jeu de données
- clonez votre dépôt avec ! git clone --recursive [GitHub LINK REPO]
- trouver où sont vos données ( !commande ls )
- ouvrir le fichier avec pandas comme vous le faites dans le carnet jupyter normal.
cela vous permet de télécharger vos fichiers via Google Drive.
exécutez le code ci - dessous (trouvé quelque part auparavant mais je ne peux pas trouver la source à nouveau-crédits à 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 apparaît, qui vous invite à vous connecter à Google; après un autre apparaîtra demander la permission d'accéder à votre Google Drive.
ensuite, Lancez ceci qui crée un répertoire nommé "drive", et les liens de votre lecteur Google à elle:
!mkdir -p drive
!google-drive-ocamlfuse drive
Si vous faites un !ls
maintenant, il y aura un répertoire en voiture, et si vous faites un !ls drive
vous pouvez voir tout le contenu de votre Google Drive.
donc par exemple, si je sauve mon fichier appelé abc.txt
dans un dossier appelé ColabNotebooks
dans mon lecteur Google, je peux maintenant y accéder via un chemin drive/ColabNotebooks/abc.txt
la solution la plus simple que j'ai trouvée jusqu'à présent qui fonctionne parfaitement pour les fichiers CSV de petite à moyenne taille est:
- Créer un secret essentiel sur gist.github.com et en amont (ou copier-coller le contenu de votre fichier.
- cliquez sur Raw affichez et copiez L'URL du fichier raw.
- utilisez L'URL copiée comme l'adresse du fichier lorsque vous appelez
pandas.read_csv(URL)
Cela peut ou peut pas de travail pour lire un fichier texte ligne par ligne ou des fichiers binaires.
importation rapide et facile de 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)
il a été résolu, trouver des détails ici et s'il vous plaît utiliser la fonction ci-dessous: https://stackoverflow.com/questions/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!')
Voici une façon d'importer des fichiers à partir de Google drive pour les ordinateurs portables.
ouvrez le carnet jupyter et exécutez le code ci-dessous et complétez 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 à partir de Google drive vers les ordinateurs portables (Ex: Colab_Notebooks/db.csv)
permet de dire votre fichier dataset dans Colab_Notebooks le dossier et son nom est db.csv
import pandas as pd
dataset=pd.read_csv("drive/Colab_Notebooks/db.csv")
j'espère que cela aide