将私人数据导入Google Colaboratory笔记本的常见方法有哪些?是否可以导入非公开的Google工作表?您无法读取系统文件。入门文档链接到有关使用BigQuery的指南,但这似乎有点...太多了。
将私人数据导入Google Colaboratory笔记本的常见方法有哪些?是否可以导入非公开的Google工作表?您无法读取系统文件。入门文档链接到有关使用BigQuery的指南,但这似乎有点...太多了。
Answers:
可以在此处找到官方示例笔记本,该笔记本演示了本地文件的上载/下载以及与Drive和Sheets的集成。https : //colab.research.google.com/notebooks/io.ipynb
共享文件的最简单方法是挂载Google云端硬盘。
为此,请在代码单元中运行以下命令:
from google.colab import drive
drive.mount('/content/drive')
它将要求您访问允许“ Google Files Stream”的链接以访问驱动器。之后,将显示一个长的字母数字验证码,需要在您的Colab笔记本中输入该验证码。
之后,您的云端硬盘文件将被挂载,您可以使用侧面板中的文件浏览器进行浏览。
上载
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
复制-'29PGh8XCts3mlMP6zRphvnIcbv27boawn'-这是文件ID。
在您的笔记本中:
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云端硬盘安装到协作
from google.colab import drive
drive.mount('/content/gdrive')
第2步-现在,您将在左窗格(文件资源管理器)中看到您的Google云端硬盘文件。右键单击您需要导入的文件,然后选择çopypath。然后,使用此复制的路径照常导入熊猫。
import pandas as pd
df=pd.read_csv('gdrive/My Drive/data.csv')
做完了!
我制作的最简单的方法是:
这使您可以通过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云端硬盘的权限。
然后,运行此命令,创建一个名为“ drive”的目录,并将您的Google Drive链接到该目录:
!mkdir -p drive
!google-drive-ocamlfuse drive
如果您!ls
现在进行操作,则将有一个目录驱动器,如果您执行一个!ls drive
,则可以看到Google云端硬盘的所有内容。
因此,例如,如果将我的文件保存在Google云端硬盘abc.txt
中的文件夹ColabNotebooks
中,则现在可以通过路径访问该文件drive/ColabNotebooks/abc.txt
在任何协作的左侧栏中,都有一个名为“文件”的部分。在此处上传文件并使用此路径
"/content/YourFileName.extension"
例如: pd.read_csv('/content/Forbes2015.csv');
pd.read_csv('Forbes2015.csv');
到目前为止,我发现最适合中小型CSV文件的最简单解决方案是:
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://github.com/ruelj2/Google_drive上的google.colab和PyDrive上使用我的实现,这使它变得容易得多。
!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)
它已解决,请在此处查找详细信息,请使用以下功能: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驱动器将文件导入笔记本的一种方法。
!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}
!mkdir -p drive
!google-drive-ocamlfuse drive
假设您的数据集文件位于Colab_Notebooks文件夹中,名称为db.csv
import pandas as pd
dataset=pd.read_csv("drive/Colab_Notebooks/db.csv")
希望对您有所帮助
如果数据集大小小于25mb,则上载CSV文件的最简单方法是从GitHub存储库中。
例:
import pandas as pd
url = 'copied_raw_data_link'
df1 = pd.read_csv(url)
df1.head()