最近Google datalabが流行っているらしいので、試しに環境を立ててデータをpandasに読み込んでみるところまでやってみました。 以下はその手順のメモです。
1. Datalabを使えるようにする
まずは以下のクイックスタートを参考にDatalabのインスタンスを作成します。
Quickstart | Google Cloud Datalab Documentation | Google Cloud Platform
注意事項
- 上リンクの作業を行う際にVMインスタンスを作成する必要はありません。
なぜなら上記クイックスタートで叩く
datalab create instance-name
でDatalab用のインスタンスが作成されるからです。
2. また、
gcloud config set compute/zone zone
でゾーンを設定する際は以下のゾーンごとの価格を確認しておきましょう。 Google Compute Engine の料金 | Compute Engine ドキュメント | Google Cloud Platform
クイックスタートのCloud Datalab インスタンスを作成して接続するまで実行したら、 JupyterそっくりなGoogle Cloud Datalabの画面が表示されていると思います。そしたらここまでの手順は成功です。
2. Datalabを使ってPandasのdataframeにcsvを読み込む
次にローカルマシンにあるデータをdatalabで使えるようにします。 色々探した所データをGoogle Cloud Storageにアップロードし、それをDatalabから読み込みに行くのが良さそうなのでそうします。
Google Cloud Storageにデータをアップロードする
Google Cloud Storageにアクセスします。
デフォルトで作成されているプロジェクトを使っているなら、既にデフォルトプロジェクト同じ名前のバケットが作られているはずなので、バケットの名前をクリックします。バケットが無ければ適当な名前をつけてバケットを作成して、バケットの名前をクリックします。すると以下の様な画面が出るのでファイルをアップロードボタンか、ドラッグアンドドロップでデータをアップロードします。
アップロードしたファイルが下の画像の様に表示されていれば成功です。
Datalabにcsvを読み込む
後は以下のようにStorage APIを使ってデータを読み込むだけです!
import google.datalab.storage as storage import pandas as pd from io import BytesIO # Cloud Strage内のtrain.csvを変数dataに読み込む %%gcs read --object gs://your-project-name/train.csv --variable data # Cloud Storageから読み込んだデータをpandas dataframeに格納する。 df = pd.read_csv(BytesIO(data))
ちなみにdataframeをCloud Strageに書き出す場合は以下のようにします。
# 変数dfをCloud Storage内のtrain2.csvに書き出す %storage write --variable df --object gs://your-project-name/train2.csv
お疲れ様でしたヾ(@⌒ー⌒@)ノ
参考
- Datalab内のdatalab>docs>tutorials>Storage>Storage APIs.ipynb
- python - Write a Pandas DataFrame to Google Cloud Storage or BigQuery - Stack Overflow
インスタンスへのファイルの転送 | Compute Engine ドキュメント | Google Cloud Platform
Quickstart | Google Cloud Datalab Documentation | Google Cloud Platform