社内でデータ分析結果を可視化・共有する際に Google Colab が便利
社内でデータ分析のレポートを書く際は Google Colab がとても便利な事に気がついた。
Google Bigquery でデータを抽出、Google Sheets で可視化
従来だと、自分がやっていた方法として、
- Google BQ などで分析対象結果のデータを抽出
- その結果を Google Spread Sheet として保存して、Google Sheets の機能で可視化。元の SQL のコードは、別シートを作ってそこに貼り付けておく。
利点としては、一度データを抽出した後は、Google Sheets で二次加工が簡単にできる点がとても便利。 また、 Google Sheet を共有後に Produc Manager が出したい数値を、Product Manager 自身が Google Sheets を元にさっと計算することもできる。
だが、二次加工が便利なのはいいが、大抵の可視化ってパターンが決まっているかつ二次加工の状況が必ず発生するわけではないので、SQL 取得とその可視化を一気通貫でできないかなと考えていた。
なにか良い方法無いかなと思っている矢先に、別のチームの同僚が、Google Colab を使って、BQ を dataframe として保存後 matplotlib で可視化しているのを見かけて、
求めていたのは…こ、これだ….
となり、速攻取り入れました。
良いと思ったところは積極的に真似する
Google Colab なら、データの取得・加工・可視化までを完結可能
Google Colab の利点を列挙しておく
- SQL のコード、データ抽出や可視化のロジックなどが Python で記述可能かつ、Google Colab で完結
- matplotlib で可視化できるので、見やすく美しい図を作れる
- そしてそのコードは他のデータ分析でも再利用可能
- pandas dataframe で Google BQ からデータを取得するので、Standard SQL だけでは難しい計算も pandas、 numpy や scipy などを使ってデータ加工が簡単にできるのも、便利
- matplotlib で可視化できるので、見やすく美しい図を作れる
- Google Sheets 同様、簡単に社内で共有できる
- Markdown も Google Colab 内で書けるので、凝った文章などもいれてレポートも書ける
マジックコマンドで、Google BQ の結果を dataframe として保存1したり、
# Save output in a variable `df`
%%bigquery --project yourprojectid df
SELECT
COUNT(*) as total_rows
FROM `bigquery-public-data.samples.gsod`
また、#@title TITLE
を Google Colab のセルの上部に入力すると、コードの部分は非表示になりスッキリした見かけにすることができる。2
#@title MODULE
import numpy as np
import pandas as np
と書くと
が
こうなり、右側をクリックすると
コード部分を隠すこともできる。
この機能もレポートとして書く際には重宝しており、このセルで何をやっているかも docstring っぽく記述しておくことができる。
入力フォームも簡単に作れる2ようなので、可視化やレポート作成という本懐を見誤ることがなければ、やはり Notebook は便利。
二次加工が決まっている工程なら「Google Bigquery でデータを抽出、Google Sheets で可視化」の方法を取ればいいが、 サっと分析して可視化結果を共有したいときには、Google Colab が一択になった。
余談
@yohei_kikuta さんが、以前 Blog で「BigQuery を使って分析する際の tips」のシリーズを書いており、他者のワークフローを拝見するのは参考になるなと思い、自分も書いてみた。3
関連しているかもしれない記事
- Jupyter Notebook で画像をダウンロードすることなく、URLから参照してPandas DataFrame内部に表示させる
- Google Colab で Spacy による NER の結果を表示するには、jupyter 引数を True にする必要がある
- pandas を使って特定のディレクトリのCSVファイルをすべて連結して一つのCSVファイルを作成
- 遅すぎる `pandas.read_gbq` を使わずに、Google BigQueryから高速にデータを読み込む
- Jupyter Notebook上にTensorboard を わずか2行で表示させる
📮 📧 🐏: 記事への感想のおたよりをおまちしてます。 お気軽にお送りください。 メールアドレス入力があればメールで返信させていただきます。 もちろんお返事を希望せずに単なる感想だけでも大歓迎です。
このサイトの更新情報をRSSで配信しています。 お好きなフィードリーダーで購読してみてください。
このウェブサイトの運営や著者の活動を支援していただける方を募集しています。 もしよろしければ、Buy Me a Coffee からサポート(投げ銭)していただけると、著者の活動のモチベーションに繋がります✨
Amazonでほしいものリストも公開しているので、こちらからもサポートしていただけると励みになります。