Импорт данных в Google Colaboratory

каковы общие способы импорта личных данных в ноутбуки Google Colaboratory? Можно ли импортировать непубличный Google лист? Вы не можете читать из системных файлов. Вводные документы ссылаются на руководство по использованию BigQuery, но это кажется немного... много.

9 ответов


официальный пример ноутбука, демонстрирующий локальную загрузку/загрузку файлов и интеграцию с диском и листами, доступен здесь: https://colab.research.google.com/notebooks/io.ipynb

самый простой способ обмена файлами-подключить Google Диск.

для этого выполните следующее в ячейке код:

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

после этого, ваши файлы диска будет смонтирован, и вы можете просматривать их с помощью файлового менеджера в стороне панель.

enter image description here

здесь полный пример ноутбука


загрузить

from google.colab import files
files.upload()

скачать

files.download('filename')

список каталогов

files.os.listdir()

простой способ импорта данных из вашего 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

СОЗДАТЬ ФАЙЛ ДЛЯ НОУТБУКА

если файл данных уже находится в вашем gdrive, вы можете перейти к этому шагу.

теперь он находится в вашем Google Диске. Найти файл на Google Диске и щелкните правой кнопкой мыши. Нажмите получить доступ по ссылке. Вы получите окно с:

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

Copy - '29PGh8XCts3mlMP6zRphvnIcbv27boawn' - это идентификатор файла.

в своем блокноте:

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

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

ИМПОРТ ДАННЫХ В Тетрадь

чтобы импортировать данные, загруженные в ноутбук (файл json в этом примере-как вы загружаете, будет зависеть от типа файла / данных - .формат txt.,КШМ и т. д. ):

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

теперь вы можете распечатать, чтобы увидеть данные там:

    print(sample_uploaded_data)

самый простой способ, который я сделал:

  1. сделать репозиторий на GitHub с вашим набором данных
  2. клонируйте свой репозиторий ! git clone --рекурсивный [GitHub LINK REPO]
  3. найти, где ваши данные ( !команда ls )
  4. откройте файл с пандами, как вы это делаете в обычном ноутбуке jupyter.

это позволяет загружать файлы через 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 Диску.

затем запустите это, которое создает каталог с именем "диск" и связывает ваш Гугл Диска:

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

если вы !ls теперь будет диск каталога, и если вы сделаете !ls drive вы можете увидеть все содержимое вашего Google Диска.

так, например, если я сохраню свой файл под названием abc.txt в папке ColabNotebooks в моем Google Диске я теперь могу получить доступ к нему через путь drive/ColabNotebooks/abc.txt


самое простое решение, которое я нашел до сих пор, которое отлично работает для небольших и средних файлов CSV:

  1. создайте секретную суть gist.github.com и загрузить (или скопировать-вставить содержимое) вашего файла.
  2. нажмите на кнопку Raw просмотр и копирование URL-адреса raw-файла.
  3. используйте скопированный URL в качестве адреса файла при вызове pandas.read_csv(URL)

Это может работать или не работать для чтения текстового файла строка за строкой или двоичный файлы.


быстрый и легкий импорт из 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)

Он был разрешен, найдите детали здесь и пожалуйста используйте функцию ниже: 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!')

вот один из способов импорта файлов с 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}

как только вы закончите с вышеуказанным кодом, запустите приведенный ниже код для подключения google drive

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

импорт файлов с google Диска в ноутбуки (например: Colab_Notebooks / db.csv)

скажем, ваш файл набора данных в папке Colab_Notebooks и его имя децибел.csv

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

надеюсь, это поможет