web-dev-qa-db-ja.com

コラボラトリーのドライブからxlsxファイルをロードします

MS-Excel(.xlsx)ファイルをGoogleドライブからコラボラトリーにインポートするにはどうすればよいですか?

_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を取得できます。 _それからのデータフレーム。

4
dd_rookie

Excel_file.GetContentFileを使用して、ファイルをローカルに保存することをお勧めします。次に、read_Excelの後に、Pandas !pip install -q xlrdメソッドを使用できます。

完全な例を次に示します。 https://colab.research.google.com/notebook#fileId=1SU176zTQvhflodEzuiacNrzxFQ6fWeWC

私がより詳細にしたこと:

新しい シートのスプレッドシート を作成して.xlsxファイルとしてエクスポートしました。

次に、それを.xlsxファイルとしてエクスポートし、ドライブに再度アップロードしました。 URLは次のとおりです: https://drive.google.com/open?id=1Sv4ib5i7CKWhAHZkKg-uitIkS3xwxtXM

ファイルIDをメモします。私の場合は1Sv4ib5i7CKWhAHZkKg-uitIkS3xwxtXMです。

次に、Colabで、ファイルをダウンロードするために ドライブダウンロードスニペット を微調整しました。重要なビットは次のとおりです。

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...行は、Excelファイルを読み取るために必要なxlrdライブラリをインストールします。

5
Bob Smith