Python
google
colaboratory

google Colaboratoryでファイルを読み込む方法

Colaboratoryとはgoogleが作った
jupyter note環境をクラウドで使えるようなツールのこと
https://colab.research.google.com/

ファイルを読み込む方法について調べたのでまとめておく
各方法についてcsvファイルを読み込んで表示するまでの手順を書いていく

*コードの実行は全てcolaboratoryのnotebook上で行っている

ローカルのファイルを読み込む

ファイルをアップロードして、読み込む

upload用のダイアログを利用して、ファイルをアップロードして読み込む

# show upload dialog
from google.colab import files
uploaded = files.upload()

を実行すると、upload用のダイアログが表示される

ファイルをアップロードしてから、下コマンド

# read data
import pandas as pd
import io
data = pd.read_csv(io.StringIO(uploaded['sample.csv'].decode('utf-8')), header=-1)
data.head()

で中身を読み込む

実際にやるとこんな感じ

upload.png

google driveのファイルを読み込む

driveをディレクトリとしてマウントする

google driveの中身をディレクトリとして読み込む
パスを指定することでファイルを読み込むことができる

  • 認証部分

色々installする、実行には少し時間がかかる
(*colaboratoryではshellコマンドの実行もできるため、色々追加でインストールできるようになっている)

!apt-get install -y -qq software-properties-common python-software-properties module-init-tools
!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
!apt-get update -qq 2>&1 > /dev/null
!apt-get -y install -qq google-drive-ocamlfuse fuse
from google.colab import auth
auth.authenticate_user()
from oauth2client.client import GoogleCredentials
creds = GoogleCredentials.get_application_default()
import getpass
!google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} < /dev/null 2>&1 | grep URL
vcode = getpass.getpass()
!echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}

実行が終わるとURLと認証コード入力フォームが表示される

スクリーンショット 2018-03-13 17.16.50.png

URLをクリックして、読み込みたいファイルが置いてあるgoogleアカウントの認証コードを取得する

drive_auth_code.png

黒塗り部分に認証用のコードが表示されるのでコピペして、
先ほどの認証コード入力フォームに貼り付ける

  • データ読み込み

認証の後、以下コマンドにてdriveフォルダをマウントすることで
drive内のファイルを読み込むことができる

# drive mean root directory of  google drive
!mkdir -p drive
!google-drive-ocamlfuse drive
!ls drive/"Colab Notebooks"/data

...
sample.csv
import pandas as pd
df = pd.read_csv("drive/Colab Notebooks/data/sample.csv")
df.head()

実際にやるとこんな感じ

  • 認証部分

スクリーンショット 2018-03-13 17.16.50.png

  • データ読み込み

以下では、google drive内の"Colab Notebook/data"ディレクトリ内のsample.csvを読み込んでいる
スクリーンショット 2018-03-13 17.49.23.png

drive内のファイルを読み込む

共有設定を行い、drive内のファイルを読み込む
1ファイルずつ設定が必要になる

drive内のファイル共有設定

google driveにファイルをアップロードし、
該当ファイル上で右クリックして、"共有可能なリンクを取得"をクリック

drive_share_file.png

drive_share_file_url.png

表示されるurlの"id="以下をコピーしておく

実行

  • 認証部分

先ほどと同じようにURLと認証コード入力フォームが表示される

# Install the PyDrive wrapper & import libraries.
# This only needs to be done once per notebook.
!pip install -U -q PyDrive
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials

# check auth
auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)
  • 読み込み部分

1行目のidの値は"drive内のファイル共有設定"にて取得したidを設定する

downloaded = drive.CreateFile({'id':'1blX83l....'})

# Download the file to a local disk as 'sample.csv'.
downloaded.GetContentFile('sample.csv')

import pandas as pd
data = pd.read_csv('sample.csv')
data.head()

実際にやるとこんな感じ

  • 認証部分

スクリーンショット 2018-03-13 17.14.07.png

  • 読み込み部分

スクリーンショット 2018-03-13 17.49.12.png

参考