【问题标题】:Importing CSV file into Google Colab using numpy loadtxt使用 numpy loadtxt 将 CSV 文件导入 Google Colab
【发布时间】:2019-08-03 07:40:03
【问题描述】:

我正在尝试将 JupyterLab 笔记本迁移到 Google Colab。在 JupyterLab 中,当我在同一目录下有 notebook 文件和关联的 csv 文件时,使用 numpy 的 loadtxt 函数很容易导入数据,如下所示:

import numpy as np
filein = "testfile.csv"
data = np.loadtxt(open(filein, "rb"), delimiter=",", skiprows=1)

出于各种原因,我想继续在 Colab 中使用 np.loadtxt。但是,当我在那里尝试相同的代码时,它无法找到 csv 文件,尽管它与笔记本文件位于相同的 Google Drive 位置。我收到此错误:"FileNotFoundError: [Errno 2] No such file or directory: 'testfile.csv'"

我想我需要提供文件的路径,但无法弄清楚如何做到这一点。有没有直接使用 np.loadtxt 的方法?

【问题讨论】:

  • 有趣的是,这种方法在 Microsoft Azure Notebook 上运行良好。
  • 试试os.listdir("."),看看你能找到什么。
  • @RockyLi 我得到 ['.config', 'sample_data'] 结果。我在笔记本所在的谷歌驱动器文件夹中都没有看到这些文件,因此它必须在其他目录中运行。
  • os.getcwd()outputs 是什么? testfile.csv的目录是什么?
  • 当我在笔记本中输入os.getcwd() 时,我得到:'/content'。我已将文件 testfile.csv 放在与 Jupyter 笔记本文件相同的目录中,该文件位于我的 Google 驱动器中:My Drive>Colab Notebooks

标签: python numpy import google-colaboratory


【解决方案1】:

Colab 不会自动装载 Google 云端硬盘。默认情况下,工作目录是临时后端虚拟机上的/content

要访问您在云端硬盘中的文件,您需要先使用以下 sn-p 挂载它:

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

然后,%cd /content/gdrive/My\ Drive 将工作目录更改为您的驱动器根目录。 (或者,根据需要自定义 testfile.csv 所在位置的路径。)

【讨论】:

  • 谢谢,这行得通。我很接近,但没有做%cd
【解决方案2】:

短而无命令

# mount gdrive with this code
from google.colab import drive
drive.mount('/content/drive')
#below where the file is in gdrive, change with your
data_path = "/content/drive/My Drive/Colab Notebooks/test/"
yearsBase, meanBase = np.loadtxt(data_path + 'file.csv', delimiter=',', unpack=True)

完成,无需其他代码 咻

【讨论】:

  • 它确实要求确认
【解决方案3】:

这是另一种人工干预较少的方式。如果您打算在多个断开连接的会话中长时间运行 colab 笔记本,这将更加有用,这样您就不需要每次都手动上传文件。

  1. 将文本文件上传到谷歌驱动器。点击分享,获取分享链接。例如,这是 iris.csv 文件的示例可共享链接:https://drive.google.com/file/d/1Llp483f91dAJriuE6PanmecLA9sWDPyi/view

  2. 从上面的链接复制文件 ID。在这种情况下,它是1Llp483f91dAJriuE6PanmecLA9sWDPyi

  3. 现在您可以在任何 colab 笔记本中使用以下单元格下载文件:

    file_id = "1Llp483f91dAJriuE6PanmecLA9sWDPyi" # replace with your ID
    !gdown https://drive.google.com/uc?id={file_id}
    

键入 !ls 以查看工作区中的文件。

详细的官方指南,参考这个笔记本:https://colab.research.google.com/notebooks/io.ipynb

【讨论】:

  • 这很有趣。该文件被永久上传到我的谷歌驱动器,因此不必每次都这样做。我考虑使用 Google colab 而不是 Microsoft Azure 笔记本的原因是,我希望笔记本和数据文件只能由特定用户访问,而不是公开提供。
猜你喜欢
  • 1970-01-01
  • 2020-03-15
  • 2022-08-19
  • 1970-01-01
  • 1970-01-01
  • 2019-06-20
  • 2020-06-06
  • 2020-05-19
  • 2019-05-22
相关资源
最近更新 更多