猫になりたい

コンサルのデータ分析屋、計量経済とか機械学習をやっています。pyてょnは3.7を使ってマスコレルウィンストングリーン。

Google datalabを使ってみる

最近Google datalabが流行っているらしいので、試しに環境を立ててデータをpandasに読み込んでみるところまでやってみました。 以下はその手順のメモです。

1. Datalabを使えるようにする

まずは以下のクイックスタートを参考にDatalabのインスタンスを作成します。
Quickstart  |  Google Cloud Datalab Documentation  |  Google Cloud Platform

注意事項

  1. 上リンクの作業を行う際に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にアクセスします。

デフォルトで作成されているプロジェクトを使っているなら、既にデフォルトプロジェクト同じ名前のバケットが作られているはずなので、バケットの名前をクリックします。バケットが無ければ適当な名前をつけてバケットを作成して、バケットの名前をクリックします。すると以下の様な画面が出るのでファイルをアップロードボタンか、ドラッグアンドドロップでデータをアップロードします。 f:id:shikiponn:20171104213348p:plain

アップロードしたファイルが下の画像の様に表示されていれば成功です。 f:id:shikiponn:20171104214919p:plain

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

お疲れ様でしたヾ(@⌒ー⌒@)ノ

参考