Google Colaboratoryとはgoogleが作った jupyter note環境をブラウザで使えるようなツールのこと
ファイルを読み込む方法について調べたのでまとめておく 各方法について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()
で中身を読み込む。実際にやると↓な感じ

もしくはこちらでも読み込める
# read data
import pandas as pd
data = pd.read_csv('sample.csv', encoding='utf-8', header=-1)
data.head()
google driveのファイルを読み込む
drive内のディレクトリをマウントする4(2020/06/29)
gui表示が新しくなった。また、ノートブックを再接続すると自動的にマウントするようになってる
- ファイルタブからgoogle driveっぽいアイコンをクリック

- popupが出てくるので接続して認証する

- unmountもアイコンでできる

drive内のディレクトリをマウントする3(2019/06/22)
画面からスクリプトを呼び出せる
coraboratory notebookの左上の>
アイコンをクリックして

ファイル
→ドライブをマウント
をクリックすると、スクリプト付きのセルが作られる


あとは実行して、認証情報を入力すると、/drive/My Drive
以下に、google driveのホームディレクトリがマウントされる(便利

drive内のディレクトリをマウントする2(2018/09/20)
公式のページより
https://colab.research.google.com/notebooks/io.ipynb#scrollTo=RWSJpsyKqHjH
from google.colab import drive
drive.mount('/content/gdrive')
例によって認証を行って
Go to this URL in a browser: https://accounts.google.com/o/oauth2/auth...
Enter your authorization code:
··········
Mounted at /content/gdrive
gdriveのMy Drive以下にdriveのルートディレクトリがマウントされているっぽい
!ls ./gdrive/'My Drive'/"Colab Notebooks"
drive内のディレクトリをマウントする1
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と認証コード入力フォームが表示される

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

黒塗り部分に認証用のコードが表示されるのでコピペして、 先ほどの認証コード入力フォームに貼り付ける
- データ読み込み
認証の後、以下コマンドにて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()
または任意のディレクトリに移動してから実行することもできる
import os
os.chdir('drive/Colab Notebooks/data')
import pandas as pd
df = pd.read_csv("sample.csv")
df.head()
実際にやるとこんな感じ
- 認証部分

- データ読み込み
以下では、google drive内の”Colab Notebook/data”ディレクトリ内のsample.csvを読み込んでいる

drive内のファイル共有設定
1ファイルずつ共有設定を行い、リンクidを取得して、drive内のファイルを読み込む
google driveにファイルをアップロードし、 該当ファイル上で右クリックして、“共有可能なリンクを取得”をクリック


表示される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()
実際にやるとこんな感じ
- 認証部分

- 読み込み部分
