将数据导入Google Colaboratory

时间:2017-10-28 04:56:59

标签: google-sheets google-colaboratory

将私人数据导入Google Colaboratory笔记本的常用方法有哪些?是否可以导入非公开的Google表格?您无法从系统文件中读取。介绍性文档链接到guide on using BigQuery,但这似乎有点......很多。

21 个答案:

答案 0 :(得分:131)

此处提供了一个官方示例笔记本,演示了本地文件上传/下载以及与云端硬盘和工作表的集成: https://colab.research.google.com/notebooks/io.ipynb

共享文件的最简单方法是安装Google云端硬盘。

为此,请在代码单元格中运行以下命令:

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

之后,您的驱动器文件将被挂载,您可以使用侧面板中的文件浏览器进行浏览。

enter image description here

这是full example notebook

答案 1 :(得分:27)

上传

from google.colab import files
files.upload()

下载

files.download('filename')

列出目录

files.os.listdir()

答案 2 :(得分:15)

从googledrive导入数据的简单方法 - 这样做可以节省人们的时间(不知道谷歌为什么不明确地列出这一步)。

安装和认证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

如果您需要从本地驱动器上传数据:

    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云端硬盘中找到该文件,然后右键单击。点击获取'可共享链接'。您将看到一个窗口:

    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)

答案 3 :(得分:6)

我做过的最简单的方法是:

  1. 使用您的数据集
  2. 在github上创建存储库
  3. 克隆您的存储库! git clone --recursive [GITHUB LINK REPO]
  4. 查找数据的位置(!ls命令)
  5. 使用pandas打开文件,就像在普通的jupyter笔记本中一样。

答案 4 :(得分:6)

这允许您通过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云端硬盘的权限。

然后,运行此操作,创建一个名为&#39; drive&#39;的目录,并将您的Google云端硬盘链接到该目录:

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

如果您现在!ls,则会有一个目录驱动器,如果您执行!ls drive,则可以看到Google云端硬盘的所有内容。

例如,如果我将名为abc.txt的文件保存在我的Google云端硬盘中名为ColabNotebooks的文件夹中,我现在可以通过路径drive/ColabNotebooks/abc.txt

访问它

答案 5 :(得分:4)

步骤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')

完成!

答案 6 :(得分:3)

任何协作的左侧栏上都有一个名为“文件”的部分。 在此处上传文件并使用此路径

"/content/YourFileName.extension"

例如:pd.read_csv('/content/Forbes2015.csv');

答案 7 :(得分:3)

从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)

答案 8 :(得分:2)

到目前为止,我发现的最简单的解决方案适用于中小型CSV文件:

  1. 在gist.github.com上创建一个秘密要点,然后上传(或复制粘贴)您文件的内容。
  2. 点击原始视图并复制原始文件网址。
  3. 当您致电pandas.read_csv(URL)
  4. 时,请使用复制的网址作为文件地址

    这可能会或可能不会逐行读取文本文件。

答案 9 :(得分:2)

对于那些像我一样来自Google的关键字“ upload file colab”的人:

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

答案 10 :(得分:2)

上传数据/将数据导入Google colab GUI的最佳简便方法是单击最左侧的第三个选项“文件”菜单图标,在Windows操作系统中,您将获得上载浏览器文件。易于理解。单击以下两个选项后,您将获得上载窗口框。完成工作。 enter image description here

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

答案 11 :(得分:1)

您还可以在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)

答案 12 :(得分:1)

在Google Colabs中 如果这是您第一次来,

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

运行这些代码并通过outputlink 然后越过通行证到框

复制时,您可以按以下方式复制, 转到文件右键单击并复制路径 ***不要忘记删除“ / content”

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

答案 13 :(得分:1)

  1. 您可以通过运行以下命令来安装到Google驱动器

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

  2. 之后用于训练将数据从gdrive复制到colab根文件夹。

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

第一个路径是gdrive路径,第二个是colab根文件夹。

这种方式对大数据的训练更快。

答案 14 :(得分:1)

我创建了一小段代码,可以用多种方式做到这一点。你可以

  1. 使用已经上传的文件(在重新启动内核时很有用)
  2. 使用Github中的文件
  3. 手动上传文件
import os.path

filename = "your_file_name.csv"
if os.path.isfile(filename):
  print("File already exists. Will reuse the same ...")
else:
  use_github_data = False  # Set this to True if you want to download from Github
  if use_github_data:
    print("Loading fie from Github ...")
    # Change the link below to the file on the repo
    filename = "https://github.com/ngupta23/repo_name/blob/master/your_file_name.csv" 
  else:
    print("Please upload your file to Colab ...")
    from google.colab import files
    uploaded = files.upload()

答案 15 :(得分:0)

已经解决,请在此处查找详细信息,请使用以下功能: 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!')

答案 16 :(得分:0)

这是从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驱动器

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

我希望对您有帮助

答案 17 :(得分:0)

如果您想在不使用代码的情况下执行此操作,则非常简单。 在我的情况下,将您的文件夹压缩为

  

dataset.zip

然后在Colab中右键单击要放置此文件的文件夹,然后按“上传”并上传此zip文件。之后,编写此Linux命令。

!unzip <your_zip_file_name>

您可以看到您的数据已成功上传。

答案 18 :(得分:0)

正如@Vivek Solanki所提到的,我也将文件上传到了协作仪表板的“文件”部分下。 只需记下文件已上传到的位置即可。为了我, train_data = pd.read_csv('/fileName.csv')有效。

答案 19 :(得分:0)

如果数据集的大小小于25mb,最简单的上传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()

答案 20 :(得分:0)

使用 Dropbox 执行此操作的另一种简单方法是:

将您的数据放入保管箱

复制您文件的文件共享链接

然后在 colab 中执行 wget。

例如: ! wget - O 文件名文件链接(like- https://www.dropbox.com/.....)

你已经完成了。数据将开始出现在您的 colab 内容文件夹中。