pandas 从协作室的驱动器加载xlsx文件

wxclj1h5  于 2023-10-14  发布在  其他
关注(0)|答案(6)|浏览(86)

如何将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框架。

e37o9pze

e37o9pze1#

您需要使用excel_file.GetContentFile在本地保存文件。然后,您可以在!pip install -q xlrd之后使用Pandas read_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下载片段来下载文件。关键部分是:

file_id = '1Sv4ib5i7CKWhAHZkKg-uitIkS3xwxtXM'
downloaded = drive.CreateFile({'id': file_id})
downloaded.GetContentFile('exported.xlsx')

最后,创建一个Pandas DataFrame:

!pip install -q xlrd
import pandas as pd
df = pd.read_excel('exported.xlsx')
df

!pip install...行安装xlrd库,这是读取Excel文件所需的。

wlsrxk51

wlsrxk512#

也许有一个更简单的方法:

#To read/write data from Google Drive:
#Reference: https://colab.research.google.com/notebooks/io.ipynb#scrollTo=u22w3BFiOveAå
from google.colab import drive
drive.mount('/content/drive')

df = pd.read_excel('/content/drive/My Drive/folder_name/file_name.xlsx')

# #When done, 
# drive.flush_and_unmount()
# print('All changes made in this colab session should now be visible in Drive.')
thigvfpy

thigvfpy3#

首先,我从 * google.colab * 导入iopandas文件

import io
import pandas as pd
from google.colab import files

然后我使用上传小部件上传文件

uploaded = files.upload()

您将看到类似于此的内容(单击选择文件并上传xlsx文件):

让我们假设文件名是my_spreadsheet. xlsx,因此您需要在以下行中使用它:

df = pd.read_excel(io.BytesIO(uploaded.get('my_spreadsheet.xlsx')))

这就是全部,现在你有了df结构中的第一张表。但是,如果您有多个工作表,则可以将代码更改为:
首先,将io调用移动到另一个变量

xlsx_file = io.BytesIO(uploaded.get('my_spreadsheet.xlsx'))

然后,使用new变量指定工作表名称,如下所示:

df_first_sheet = pd.read_excel(xlsx_file, 'My First Sheet')
df_second_sheet = pd.read_excel(xlsx_file, 'My Second Sheet')
6vl6ewon

6vl6ewon4#

import pandas as pd

xlsx_link = 'https://docs.google.com/spreadsheets/d/1Sv4ib5i7CKWhAHZkKg-uitIkS3xwxtXM/export'
df = pd.read_excel(xlsx_link)

如果xlsx是托管在谷歌驱动器,一旦共享,任何人都可以使用链接访问它,有或没有谷歌帐户. google.colab.drivegoogle.colab.files依赖项不是必需的

yhqotfr8

yhqotfr85#

我发现的最好的方法。
与我们在桌面上做的非常相似。
考虑到您已将文件上传到Google Drive文件夹:

  • 在左侧栏上单击文件({x}下方)
  • 选择装载驱动程序>驱动器>文件夹>文件(左键单击并复制路径)

在那之后,只是去代码和过去的路径

pd.read_excel('/content/drive/MyDrive/Colab Notebooks/token_rating.xlsx')
8ulbf1ek

8ulbf1ek6#

我找到的最好的方式

1.首先安装您的Google Drive

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

1.获取文件路径并使用pd.read_excel()
df = pd.read_excel('/content/gdrive/MyDrive/data.xlsx')
df.head()

相关问题