如何将MS-Excel(.xlsx)文件从Google Drive导入colaboratory?
excel_file = drive.CreateFile({'id':'some id'})
drive
是一个pydrive.drive.GoogleDrive
对象。但是,
print excel_file.FetchContent()
返回None。和
excel_file.content()
投掷:
TypeErrorTraceback(最后一次调用)in()-> 1 excel_file.content()
TypeError:'_io.BytesIO'对象不可调用
我的意图是(给定一些有效的文件“id”)将其作为一个io对象导入,该对象可以被pandas read_excel()
读取,并最终从中获得一个pandas框架。
6条答案
按热度按时间e37o9pze1#
您需要使用
excel_file.GetContentFile
在本地保存文件。然后,您可以在!pip install -q xlrd
之后使用Pandasread_excel
方法。下面是一个完整的例子:https://colab.research.google.com/notebook#fileId=1SU176zTQvhflodEzuiacNrzxFQ6fWeWC
我做的更详细:
我创建了一个新的spreadsheet in sheets导出为.xlsx文件。
接下来,我将其导出为.xlsx文件并再次上传到Drive。URL为:https://drive.google.com/open?id=1Sv4ib5i7CKWhAHZkKg-uitIkS3xwxtXM
注意文件ID。在我的例子中,它是
1Sv4ib5i7CKWhAHZkKg-uitIkS3xwxtXM
。然后,在Colab中,我调整了Drive下载片段来下载文件。关键部分是:
最后,创建一个Pandas DataFrame:
!pip install...
行安装xlrd库,这是读取Excel文件所需的。wlsrxk512#
也许有一个更简单的方法:
thigvfpy3#
首先,我从 * google.colab * 导入io、pandas和文件
然后我使用上传小部件上传文件
您将看到类似于此的内容(单击选择文件并上传xlsx文件):
让我们假设文件名是my_spreadsheet. xlsx,因此您需要在以下行中使用它:
这就是全部,现在你有了df结构中的第一张表。但是,如果您有多个工作表,则可以将代码更改为:
首先,将io调用移动到另一个变量
然后,使用new变量指定工作表名称,如下所示:
6vl6ewon4#
如果xlsx是托管在谷歌驱动器,一旦共享,任何人都可以使用链接访问它,有或没有谷歌帐户.
google.colab.drive
或google.colab.files
依赖项不是必需的yhqotfr85#
我发现的最好的方法。
与我们在桌面上做的非常相似。
考虑到您已将文件上传到Google Drive文件夹:
在那之后,只是去代码和过去的路径
8ulbf1ek6#
我找到的最好的方式
1.首先安装您的Google Drive
1.获取文件路径并使用pd.read_excel()
df = pd.read_excel('/content/gdrive/MyDrive/data.xlsx')
df.head()