Імпорт даних у Google Colaboratory


156

Які поширені способи імпорту приватних даних у ноутбуки Google Colaboratory? Чи можливо імпортувати непублічний аркуш Google? Ви не можете читати із системних файлів. Вступні документи посилаються на посібник з використання BigQuery , але це здається трохи ... багато.

Відповіді:


197

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

Найпростіший спосіб ділитися файлами - це встановити Google Диск.

Для цього виконайте наступне в коді коду:

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

Він попросить вас відвідати посилання на ДОБАВЛЕННЯ "Потік файлів Google" для доступу до вашого диска. Після цього буде показано довгий буквено-цифровий код автентичності, який потрібно ввести у зошит вашого Колаба.

Після цього ваші файли на Диску будуть змонтовані, і ви можете переглядати їх за допомогою браузера файлів на бічній панелі.

введіть тут опис зображення

Ось повний приклад зошита


3
Приклад аркушів тепер включений у пакетний приклад ноутбука, який також містить рецепти для Диска та Google Cloud Storage: colab.research.google.com/notebook#fileId=/v2/external/…
Боб Сміт

9
Чи можу я імпортувати певну папку на своєму Диску? Я ділюсь цим колабом з кимось іншим, і я не хочу надавати доступ до всього свого диска Google, який містить конфіденційну інформацію
yellow01

4
Файли на Диску не надаються спільним, якщо ви ділитесь ноутбуком. Користувачеві все одно потрібно буде змонтувати власний привід, який є окремим. Ви можете поділитися файлами з цим користувачем, якщо це потрібно, але все це контролюється звичайними ACL-дисками Drive. Спільний доступ до ноутбука Colab ділиться лише тим ноутбуком, а не файлами Диска, на які посилається цей ноутбук.
Боб Сміт

моє кріплення успішне, але я не бачу переліку файлів у лівій частині під файлами. Будь-які пропозиції?
Swapnil B.

3
Не тренуйтеся на даних у змонтованому накопичувачі google. Спочатку скопіюйте дані на локальний диск, а потім тренуйтеся на ньому. Це буде майже в 10 разів швидше. Для швидшого копіювання переконайтеся, що файли даних - це великі архіви чи кілька менших. Наприклад: - Не використовуйте 100000 файлів зображень. Використовуйте 100 архівів з 1000 зображень у кожному. Таким чином завантаження на Google Drive також швидше, а також копіювання з google drive на colab
saurabheights

47

Завантажити

from google.colab import files
files.upload()

Завантажити

files.download('filename')

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

files.os.listdir()

6
Чи зберігаються завантажені файли на диску Google або на сервері, до якого підключений ноутбук?
RodrikTheReader

1
Хіба ці файли не є ефемерними?
Акумен

Будь-який аргумент для завантаження?
користувач25004

ця відповідь має бути вгорі. Питання стосується імпорту даних, а не встановлення google-накопичувача.
Фернандо Віттман

18

Простий спосіб імпорту даних із Google govegledrive - це дозволяє економити час людям (не знаю, чому Google просто не перераховує цей крок за кроком явно).

ВСТАНОВИТИ І АВТОМЕНТИЧНИЙ ПІДРИВ

     !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

СТВОРИТИ ФАЙЛ ДЛЯ NOTEBOOK

Якщо ваш файл даних уже є у вашому gdrive, ви можете перейти до цього кроку.

Тепер це у вашому диску Google. Знайдіть файл на своєму диску Google і клацніть правою кнопкою миші. Клацніть на "спільне посилання". Ви отримаєте вікно з:

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

Копія - "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, .csv тощо):

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

Тепер ви можете роздрукувати, щоб побачити, чи є там дані:

    print(sample_uploaded_data)

1
Варто зазначити, що пропозиція ПРО ВИДАЛЕННЯ через google.colab.files.upload(), схоже, не працює ні на Firefox, ні на Safari, Chrome. Дивіться тут
5agado

15

крок 1 - Установіть Google Диск до спільної роботи

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

крок 2- Тепер ви побачите файли Google Диска на лівій панелі (програма провідника). Клацніть правою кнопкою миші на файл, який потрібно імпортувати, і виберіть çopy шлях. Потім імпортуйте, як зазвичай, в панди, використовуючи цей скопійований шлях.

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

Готово!


Виграє ясність і стислість і має однакову ефективність. Я не бачу переваги перед набагато більш залученими способами зробити це.
Елрох

7

Найпростіший спосіб, який я зробив:

  1. Зробіть сховище в github зі своїм набором даних
  2. Клоніруйте своє сховище! клон git - рекурсивний [GITHUB LINK REPO]
  3. Знайдіть, де ваші дані (! Ls команда)
  4. Відкрийте файл з пандами, як це робите у звичайному зошиті юпітера.

Привіт, з цим пробілом = pd.read_csv ("Аналіз даних / pairplots / data / gapminder_data.csv") я отримую лише змінну "версія https: // .." із лише двома спостереженнями
Mukul Sharma,

2
Це рішення не вийде, якщо розмір одного файлу перевищує допустимий ліміт github, який, якщо я думаю, у вільній версії 20 Мб.
Акшай Соам

7

Це дозволяє завантажувати файли через 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.

Потім запустіть цю команду, яка створить каталог з назвою "диск" та пов'яжіть свій Диск Google із цим:

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

Якщо ви !lsзараз зробите , з'явиться дисковий каталог, а якщо ви зробите це, !ls driveви зможете побачити весь вміст Google Диска.

Наприклад, якщо я збережу свій файл, викликаний abc.txtу папці, що називається ColabNotebooksна моєму Диску Google, я можу отримати доступ до нього через шляхdrive/ColabNotebooks/abc.txt



5

На лівій панелі будь-якого співавтора є розділ під назвою "Файли". Завантажте свої файли туди і скористайтеся цим шляхом

"/content/YourFileName.extension"

колишній: pd.read_csv('/content/Forbes2015.csv');


2
Переконайтеся, що ви завантажили безпосередньо в кореневий каталог, а не в каталог "sample_data". Також ви можете видалити "вміст" і просто написати ім'я файлу на зразок:pd.read_csv('Forbes2015.csv');
Vivek Solanki

Якщо ви все ще не працює, можете сказати мені повідомлення про помилку?
Вівек Соланки

@flashliquid Не потрібно. Він працює навіть без '/'. Ви можете випробувати його на колабі.
Вівек Соланки

3

Найбільш просте рішення, яке я знайшов дотепер, яке ідеально підходить для файлів CSV невеликого та середнього розміру, це:

  1. Створіть секретну гру на gist.github.com та завантажте (або скопіюйте та вставте вміст) свого файлу.
  2. Клацніть подання Raw і скопіюйте URL-адресу необробленого файлу.
  3. Використовуйте скопійовану URL-адресу як адресу файлу під час дзвінка pandas.read_csv(URL)

Це може бути, а може і не працювати для читання текстового файлу рядка за рядком або двійкових файлів.


1
Важливо зауважити, що в той час як таємні суперечки важко виявити, вони не є приватними, тому кожен, хто використовує такий підхід, повинен бути обережним.
Grae

2

Швидкий та простий імпорт з 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

Для тих, хто, як і я, прийшов з Google за ключовим словом "завантажити файл колаб":

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

1

Ви також можете використовувати мої реалізації на google.colab та PyDrive за адресою https://github.com/ruelj2/Google_drive, що робить це значно простіше.

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

Потім, якщо ви хочете завантажити всі файли в каталог Диска Google, просто

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

Або просто конкретний файл із

Gd.load_file(local_dir, file_ID)

У цьому випадку що таке "drive_dir_ID?"
Parseltongue

Як згадується у git repo, drive_dir_ID є відповідним ідентифікатором Google Drive запитуваного каталогу. Щоб отримати докладнішу інформацію, перегляньте сторінку github.com/ruelj2/Google_drive . Існує також чіткий приклад використання.
Жан-Крістоф

1

Як згадував @Vivek Solanki, я також завантажив свій файл на інформаційну панель колабораторії в розділі "Файл". Просто візьміть до відома, де файл завантажено. Для мене train_data = pd.read_csv('/fileName.csv')працювали.


1

в колабах Google, якщо це ваш перший раз,

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

запустіть ці коди і пройдіть по вихідному посиланню, а потім повз пропуск-прозу до поля

при копіюванні ви можете скопіювати наступне: перейдіть до файлу правою кнопкою миші та скопіюйте шлях ***, не забудьте видалити "/ content"

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

1
  1. Ви можете встановити на Google Drive, виконавши наступні

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

  2. Після цього для навчання скопіюйте дані з gdrive в кореневу папку colab.

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

де перший шлях - шлях gdrive, а другий - коренева папка колаба.

Цей спосіб навчання швидший для великих даних.


0

Це вирішено, знайдіть тут деталі та скористайтеся функцією нижче: /programming/47212852/how-to-import-and-read-a-shelve-or-numpy-file-in-google -колабораторія / 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

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

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

Імпорт файлів з google-накопичувача до ноутбуків (напр .: Colab_Notebooks / db.csv)

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

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

Я сподіваюся, що це допомагає


0

якщо ви хочете зробити це без коду, це досить просто. Застебніть свою папку, в моєму випадку вона є

data.zip

потім клацніть правою кнопкою миші в Colab папку, в яку потрібно помістити цей файл, і натисніть Завантажити та завантажити цей поштовий файл. Після цього напишіть цю команду Linux.

!unzip <your_zip_file_name>

ви можете бачити, що ваші дані успішно завантажені.


0

Якщо розмір набору даних менший за 25 Мб, найпростіший спосіб завантажити файл CSV - це з вашого сховища GitHub.

  1. Клацніть на наборі даних у сховищі
  2. Натисніть кнопку Переглянути сировину
  3. Скопіюйте посилання та збережіть його у змінній
  4. завантажте змінну в Pandas read_csv, щоб отримати фрейм даних

Приклад:

import pandas as pd
url = 'copied_raw_data_link'
df1 = pd.read_csv(url)
df1.head()
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.