Import danych do Google Colaboratory
Jakie są popularne sposoby importowania prywatnych danych do notebooków Google? Czy można zaimportować Niepubliczny arkusz Google? Nie można czytać z plików systemowych. Docs wprowadzający link do poradnika na temat korzystania z BigQuery, ale to wydaje się trochę... much.
9 answers
Oficjalny przykładowy notatnik demonstrujący lokalne przesyłanie/pobieranie plików oraz integrację z dyskiem i arkuszami jest dostępny tutaj: https://colab.research.google.com/notebooks/io.ipynb
Najprostszym sposobem udostępniania plików jest zamontowanie Dysku Google.
Aby to zrobić, uruchom następujący kod w komórce:
from google.colab import drive
drive.mount('/content/drive')
Następnie pliki na dysku zostaną zamontowane i można je przeglądać za pomocą przeglądarki plików z boku panel.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-13 04:32:16
Upload
from google.colab import files
files.upload()
Pobierz
files.download('filename')
Katalog List
files.os.listdir()
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-14 10:50:04
Prosty sposób na import danych z googledrive-robi to zaoszczędzić ludziom czas(Nie wiem, dlaczego google po prostu nie wymienia tego krok po kroku jawnie).
INSTALL AND AUTHENTICATE 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
Jeśli chcesz przesłać dane z dysku lokalnego:
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])))
Wykonaj i wyświetli się przycisk Wybierz plik-Znajdź swój przesłany plik - kliknij Otwórz
Po załadowaniu wyświetli się:
sample_file.json(text/plain) - 11733 bytes, last modified: x/xx/2018 - %100 done
User uploaded file "sample_file.json" with length 11733 bytes
UTWÓRZ PLIK DO NOTATNIKA
Jeśli Twój plik danych jest już w gdrive, możesz przejść do tego kroku.
Teraz jest na Twoim Dysku google. Znajdź plik na Dysku google i kliknij prawym przyciskiem myszy. Kliknij get ' shareable link.'Dostaniesz okno z:
https://drive.google.com/open?id=29PGh8XCts3mlMP6zRphvnIcbv27boawn
Copy - '29pgh8xcts3mlmp6zrphvnicbv27boawn' - czyli ID pliku.
W notatniku:
json_import = drive.CreateFile({'id':'29PGh8XCts3mlMP6zRphvnIcbv27boawn'})
json_import.GetContentFile('sample.json') - 'sample.json' is the file name that will be accessible in the notebook.
IMPORTUJ DANE DO NOTATNIKA
Aby zaimportować dane przesłane do notatnika (plik json w tym przykładzie-to, jak wczytasz, będzie zależeć na plik / typ danych - .txt,csv itp. ):
sample_uploaded_data = json.load(open('sample.json'))
Teraz możesz wydrukować, aby zobaczyć dane tam są:
print(sample_uploaded_data)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-21 00:20:55
Najprostszy sposób jaki zrobiłem to:
- Utwórz repozytorium na GitHubie za pomocą zestawu danych
- Sklonuj swoje repozytorium z ! git clone --recursive [GITHUB LINK REPO]
- Znajdź gdzie są Twoje dane (!LS command)
- Otwórz Plik z pand tak jak to robisz w normalnym notatniku jupytera.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-10 18:50:53
Pozwala to na przesyłanie plików przez Dysk Google.
Uruchom poniższy kod (znalazłem to gdzieś wcześniej, ale nie mogę znaleźć źródła ponownie - podziękowania dla tego, kto go napisał!):
!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}
Kliknij pierwszy link, który wyświetli monit o zalogowanie się do Google; następnie pojawi się inny, który poprosi o pozwolenie na dostęp do Twojego Dysku Google.
Następnie uruchom ten, który utworzy katalog o nazwie 'drive' i połączy twój dysk Google z it:
!mkdir -p drive
!google-drive-ocamlfuse drive
Jeśli zrobisz !ls
Teraz, będzie dysk katalogowy, a jeśli zrobisz {[3] } możesz zobaczyć całą zawartość Twojego Dysku Google.
Więc na przykład, jeśli zapiszę mój plik o nazwie abc.txt
w folderze o nazwie ColabNotebooks
na moim dysku Google, mogę teraz uzyskać do niego dostęp za pomocą ścieżki drive/ColabNotebooks/abc.txt
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-17 02:55:09
Najprostszym rozwiązaniem, jakie do tej pory znalazłem, które sprawdza się idealnie dla małych i średnich plików CSV jest:
- Stwórz tajny gist na gist.github.com i prześlij (lub skopiuj-wklej zawartość) swój plik.
- Kliknij na Raw i skopiuj adres URL pliku raw.
- Użyj skopiowanego adresu URL jako adresu pliku podczas wywoływania
pandas.read_csv(URL)
To może, ale nie musi działać przy odczycie pliku tekstowego linia po linii lub pliki binarne.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-01 23:28:34
Szybki i łatwy import z 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)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-10 17:16:51
To zostało rozwiązane, Znajdź szczegóły tutaj i skorzystaj z poniższej funkcji: 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!')
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-29 13:34:07
Oto jeden ze sposobów importowania plików z Dysku google do notebooków.
Otwórz notatnik jupyter, Uruchom poniższy kod i zakończ proces uwierzytelniania
!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}
Po wykonaniu powyższego kodu Uruchom poniższy kod, aby zamontować dysk google
!mkdir -p drive
!google-drive-ocamlfuse drive
Importowanie plików z Dysku google do notebooków (np: Colab_Notebooks / db.csv)
Powiedzmy, że Twój plik dataset znajduje się w folderze Colab_Notebooks i jego nazwa to db.csv
import pandas as pd
dataset=pd.read_csv("drive/Colab_Notebooks/db.csv")
Mam nadzieję, że to pomoże
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-14 18:00:45