【问题标题】:How to read csv to dataframe in Google Colab如何在 Google Colab 中读取 csv 到数据框
【发布时间】:2018-06-28 15:35:47
【问题描述】:

我正在尝试读取我本地存储在我的机器上的 csv 文件。 (仅供参考,它是来自 Kaggle 的泰坦尼克号数据,here。)

this question and answers 我了解到您可以使用此代码导入数据,这对我来说效果很好。

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

我迷路的是如何从这里将其转换为数据帧。上面答案中列出的sample google notebook page 没有谈论它。

我正在尝试使用 from_dict 命令将字典 uploaded 转换为数据框,但无法使其工作。有一些关于将 dict 转换为数据框here 的讨论,但解决方案不适用于我(我认为)。

总结一下,我的问题是:

如何将本地存储在我的文件中的 csv 文件转换为 pandas Google Colaboratory 上的数据框?

【问题讨论】:

标签: python csv dataframe google-colaboratory


【解决方案1】:

第 1 步 - 将您的 Google Drive 安装到 Collaboratory

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

第 2 步 - 现在您将在左侧窗格(文件资源管理器)中看到您的 Google Drive 文件。右键单击需要导入的文件并选择 çopy 路径。然后像往常一样在 pandas 中导入,使用这个复制的路径。

import pandas as pd 
df=pd.read_csv('gdrive/My Drive/data.csv')

完成!

【讨论】:

  • 这对我来说非常有效。简单的代码 sn-p 等等。
【解决方案2】:

熊猫read_csv 应该可以解决问题。您需要将上传的字节包装在 io.StringIO 中,因为 read_csv 需要一个类似文件的对象。

这是一个完整的例子: https://colab.research.google.com/notebook#fileId=1JmwtF5OmSghC-y3-BkvxLan0zYXqCJJf

关键的sn-p是:

import pandas as pd
import io

df = pd.read_csv(io.StringIO(uploaded['train.csv'].decode('utf-8')))
df

【讨论】:

  • 谢谢。 @Bob Smith 我已经使用了您的解决方案,它可以工作。你能提供我如何使用已经在谷歌驱动器中的 csv 文件吗?
  • Mount your Google Drive 然后从那里读取,例如,/content/gdrive/My\ Drive/train.csv
  • 只是对 Bob 3 年前出色评论的一个小补充:现在应该是 /content/drive/My\ Drive/trains.csv,例如从 gdrive 中删除 g。
【解决方案3】:

Colab google:从您的 PC 上传 csv 我在使用 excel 文件 (*.xlsx) 时遇到了同样的问题,我解决了以下问题,我认为您可以对 csv 文件执行相同的操作: - 如果您的 PC 驱动器中有一个名为 (file.xlsx) 的文件,则: 1- 使用以下简单代码从硬盘上传:

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

按下(选择文件)并将其上传到您的谷歌驱动器。

2- 那么:

import io
data = io.BytesIO(uploaded['file.XLSX'])    

3- 最后,阅读您的文件:

import pandas as pd   
f = pd.read_excel(data , sheet_name = '1min', header = 0, skiprows = 2)
#df.sheet_names
df.head()

4- 请更改参数值以读取您自己的文件。我认为这可以推广到读取其他类型的文件!
尽情享受吧!

【讨论】:

    【解决方案4】:

    这对我有用:

    from google.colab import auth
    auth.authenticate_user()
    
    from pydrive.drive import GoogleDrive
    from pydrive.auth import GoogleAuth
    from oauth2client.client import GoogleCredentials
    gauth = GoogleAuth()
    gauth.credentials = GoogleCredentials.get_application_default()
    drive = GoogleDrive(gauth)
    
    myfile = drive.CreateFile({'id': '!!!YOUR FILE ID!!!'})
    myfile.GetContentFile('file.csv')
    

    !!!YOUR FILE ID!!! 替换为谷歌驱动器中文件的ID(这是单击“获取共享链接”时出现的长字母数字字符串)。然后就可以使用 pandas 的 read_csv 访问 file.csv:

    import pandas as pd
    frm = pd.read_csv('file.csv', header=None)
    

    【讨论】:

      【解决方案5】:

      所以,如果你不是在 google colab 上工作,你会简单地写这样的东西:

      df = pd.read_csv('path_of_the_csv_file')
      

      在 google colab 中,您只需要知道 csv 文件的路径。

      如果您按照我在下面写的步骤进行操作,您的问题将得到解决:

      1. 首先,将 CSV 文件上传到您的 Google 驱动器上。
      2. 然后,打开您的 google colab 笔记本并单击左侧的“文件”图标 页面的一侧。
      3. 然后,单击“Google Drive 文件夹”图标以安装您的 Google Drive。
      4. 然后,查找您上传到 Google 驱动器上的 csv 文件(步骤 1), 并复制其路径。
      5. 获得路径后,将其视为普通路径并在代码中使用。 它应该看起来像这样:
         df = pd.read_csv('/content/drive/MyDrive/File.csv')
      

      【讨论】:

        【解决方案6】:

        或者,您也可以使用 github 导入文件。 你可以以此为例:https://drive.google.com/file/d/1D6ViUx8_ledfBqcxHCrFPcqBvNZitwCs/view?usp=sharing

        此外,google 不会将文件保存更长时间,因此您可能必须一次又一次地运行 github sn-ps。

        【讨论】:

          【解决方案7】:

          这对我有用:

          import pandas as pd
          import io
          
          df=pd.read_csv(io.StringIO(uploaded['Filename.CSV'].decode('ISO-8859-1')))
          df
          

          【讨论】: