使用 numpy loadtxt 将 CSV 文件导入 Google Colab

Importing CSV file into Google Colab using numpy loadtxt

我正在尝试将 JupyterLab 笔记本迁移到 Google Colab。在 JupyterLab 中,当我将笔记本文件和相关的 csv 文件放在同一目录中时,可以使用 numpy 的 loadtxt 函数轻松导入数据,如下所示:

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

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

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

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

要访问您在云端硬盘中的文件,您需要先使用以下代码片段装载它:

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

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

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

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

  2. 从上面link复制文件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

更短且没有命令

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

完成,不需要其他代码 再见