如何从谷歌硬盘导入MS-excel(.xlsx)文件到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:'_ no.BytesIO'对象不可调用
我的意图是(给定一些有效的文件'id')将其作为io对象导入,可以由pandas read_excel()
读取,最后从中获取pandas数据帧。
答案 0 :(得分:5)
您需要使用excel_file.GetContentFile
在本地保存文件。然后,您可以在read_excel
之后使用Pandas !pip install -q xlrd
方法。
这是一个完整的例子: https://colab.research.google.com/notebook#fileId=1SU176zTQvhflodEzuiacNrzxFQ6fWeWC
我做的更详细:
我创建了一个新的spreadsheet in sheets作为.xlsx文件导出。
接下来,我将其导出为.xlsx文件,然后再次上传到云端硬盘。 URL是: https://drive.google.com/open?id=1Sv4ib5i7CKWhAHZkKg-uitIkS3xwxtXM
请注意文件ID。就我而言,它是1Sv4ib5i7CKWhAHZkKg-uitIkS3xwxtXM
。
然后,在Colab中,我调整了Drive download snippet来下载文件。关键位是:
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文件所必需的。
答案 1 :(得分:2)
首先,我从 google.colab
导入 io、pandas 和文件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'))
然后,使用新变量指定工作表名称,如下所示:
df_first_sheet = pd.read_excel(xlsx_file, 'My First Sheet')
df_second_sheet = pd.read_excel(xlsx_file, 'My Second Sheet')
答案 2 :(得分:1)
也许是一种更简单的方法:
#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.')
答案 3 :(得分:-2)
我在这里要解决此问题。因此,您可以将任何文件(.csv,.xlsx等)从Google驱动器导入到Google Colab。
解决方案:
from google.colab import drive
drive.mount('/content/gdrive')
import pandas as pd
df=pd.read_csv('gdrive/My Drive/HDPrice.csv')
df.shape
df
!pip install --upgrade --quiet gspread
from google.colab import auth
auth.authenticate_user()
import gspread
from oauth2client.client import GoogleCredentials
gc=gspread.authorize(GoogleCredentials.get_application_default())
worksheet=gc.open('SampleData').sheet1
cell_list=worksheet
rows=worksheet.get_all_values()
print(rows)
import pandas as pd
pd.DataFrame.from_records(rows)