この記事は、「NISE(南山大学 青山研究室)」のアドベントカレンダー2019の16日目の記事です。
#はじめに
Colabでプログラムを実行するときに、自分のGoogle Drive(以下ドライブ)にあるファイルを読み込みたくなるときがありますよね。(というかこれしないと何も進まない)
今回はそのやりかたをさらっと書きます。
ちなみになんでColabを使いたいかというと、WindowsやChromebookで開発環境を構築するのが普通にめんどくさいからですwww
どのPCからいつでもpythonのプログラムを実行したいときにcolabってほんっと有能ですよねえ。。。例えば新幹線の中で研究進めたいときとか。
…話題が逸れたので進めます。
1.マウントするプログラムを追加
下のプログラムを追加して実行しましょう。
from google.colab import drive
drive.mount('/content/drive')
これを実行するだけでマウントできちゃいます。
腰が抜けるくらい簡単ですね。
2.プログラムを実行
で、実行するとこうなります。
まず、Go to this URL in a brouser :
以下のURLに飛びます。
すると、
googleのアカウントを選択できる画面になるので、マウントしたいドライブのフォルダがあるアカウントを選択。
諸々のデータいじりますよーの同意を求められるので、同意をすると、
コードが出てきます。
このコードをコピーしてプログラムに戻り、Enter your authorization code :
以下のボックスに貼り付けると、
Mounted at /content/drive
と出たらマウント成功です。
ちなみに当たり前ですが、colabの時間制限によりインスタンスが落とされると、マウントし直さなければならないので、もう一度ここまでの操作が必要です。
(おまけ)3.使えるのかテスト
マウントしたドライブを開くにはどうしたらいいのか、テストして確かめましょう。
基本的にはローカル環境でPCを使う場合と同じようにしてファイルを開くことが出来ます。
今回使うプログラムは、csvファイルを読み込んで、同じ行内にあるdatetime
型のデータの差分を取り、その差分すべての平均や中央値などを求めるプログラムです。得られたデータはtxtファイルにして保存します。
以下ソースコード
import pandas as pd
import numpy as np
import sys
import csv
import datetime
from google.colab import files
import io
file = input("input filename : ") #ファイル名入力
#読み込んだCSVファイルをListに変換
df = pd.read_csv(file, parse_dates=['send','receive'])
df['difference'] = df['receive'] - df['send'] #差分を計算
mean = df['difference'].mean() #平均
median = df['difference'].median() #中央値
dfmax = df['difference'].max() #最大値
dfmin = df['difference'].min() #最小値
count = df['difference'].count() #データ数
std = df['difference'].std() #標準偏差
print(df)
s = str(file)+'\nmean:'+str(mean)+'\nmedian:'+str(median)+'\nmax:'+str(dfmax)+'\nmin:'+str(dfmin)+'\ncount:'+str(count)
print(s)
file = file.replace("csv", "txt")
f = open(file, 'w')
f.write(s) #textファイルに書き込み
f.close()
実行すると、
開きたいファイルは(マイドライブをカレントディレクトリとして)Colab Notebooks
内のnormal_b_log.csv
です。
colabを開いたときのカレントディレクトリは、content
になっています。
なので、上記のファイルを開くときは、drive/My Drive/Colab Notebooks/normal_b_log.csv
と入力するのが正解です。
ちなみに、My drive
を忘れがちなのでココは要注意です。
これを実行すると、Colab Notebooks
にnormal_b_log.txt
というファイルが生成されます。
ドライブを見比べると、
normal_b_log.txt
が追加されました。
ということで無事使えるようになりましたとさ。。。
まとめ
マウントの手順
1. プログラムを追加して実行
2. URLに飛び、コードを取得
3. コードを貼り付ける
マウントしたドライブを開く手順・注意点
1. ローカル環境のPCと開き方は同様
2. カレントディレクトリはcontent
3. My drive
を忘れないように注意
参考文献
google Colaboratoryでファイルを読み込む方法
【秒速で無料GPUを使う】深層学習実践Tips on Colaboratory
p.s
どうにか名古屋から品川の新幹線の中で書ききりました。
明日の記事も品川から名古屋の新幹線の中で書きます。
頑張るぞ~