Импорт данных в Google Colaboratory
каковы общие способы импорта личных данных в Google Colaboratory notebooks? Можно ли импортировать непубличный лист Google? Вы не можете читать из системных файлов. Вводные документы ссылаются на руководство по использованию BigQuery, но это кажется немного... много.
9 ответов:
официальный пример ноутбука, демонстрирующий локальную загрузку/загрузку файлов и интеграцию с диском и листами, доступен здесь: https://colab.research.google.com/notebooks/io.ipynb
самый простой способ обмена файлами-это подключить ваш Google Диск.
для этого выполните следующее в ячейке код:
from google.colab import drive drive.mount('/content/drive')
после этого, ваши файлы диска будет смонтирован, и вы можете просматривать их с помощью файлового менеджера в стороне панель.
здесь полный пример ноутбука
загрузить
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.,csv и др. ):
sample_uploaded_data = json.load(open('sample.json'))
теперь вы можете распечатать, чтобы увидеть данные есть:
print(sample_uploaded_data)
самый простой способ, который я сделал это:
- сделайте репозиторий на github с вашим набором данных
- клонируйте свой репозиторий ! git clone --рекурсивный [GitHub LINK REPO]
- найти, где ваши данные ( !команда ls )
- откройте файл с пандами, как вы это делаете в обычном ноутбуке 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:
- создать секретную суть gist.github.com и загрузить (или скопировать-вставить содержимое) вашего файла.
- нажмите на кнопку Raw просмотр и копирование URL-адреса необработанного файла.
- вставьте скопированный 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_notebook/db.csv)
допустим, ваш файл набора данных в папке Colab_notebook и его имя децибел.csv
import pandas as pd dataset=pd.read_csv("drive/Colab_Notebooks/db.csv")
надеюсь, это поможет