こんにちは!奥津です。
今日は前から気になっていたPyGWalkerで、Snowflakeのデータを可視化してみようと思います。
PyGWalkerとは
PyGWalkerはpandasのデータフレームをTableauライクにNotebook上で可視化・分析できるPythonのライブラリです。
Streamlit上で使うこともできるため、アプリ化して他のユーザへ共有することもできます。
今日はローカルのJupyter Notebookでやってみます。
ライブラリのインストール
まず、PyGWalkerの使用と、Snowflakeへの接続に必要なライブラリをインストールします。
pip install snowflake-connector-python
pip install snowflake-sqlalchemy
pip install pandas
pip install pygwalker
Snowflakeへの接続
次に、Snowflakeへの接続情報を作成します。
import pandas as pd
from sqlalchemy import create_engine
import pygwalker as pyg
# Snowflakeの接続情報を設定
user = 'YOUR_USERNAME'
password = 'YOUR_PASSWORD'
account = 'YOUR_ACCOUNT'
warehouse = 'YOUR_WAREHOUSE'
database = 'YOUR_DATABASE'
schema = 'YOUR_SCHEMA'
# SQLAlchemyエンジンの作成
engine = create_engine(
f'snowflake://{user}:{password}@{account}/{database}/{schema}?warehouse={warehouse}' )
データのクエリと取得
次に、SQLクエリを定義し、Pandasを使ってデータを取得します。
# SQLクエリを定義
query = 'SELECT * FROM YOUR_TABLE'
# Pandasを使用してデータを取得
df = pd.read_sql(query, engine)
PyGWalkerでデータを可視化
最後に、PyGWalkerを使ってデータを可視化します。
# Pygwalkerを使用してデータを可視化
pyg.walk(df)
例えばTableauのSample Superstoreデータだとこんな感じ。
グラフの種類・色分け・フィルタなど、Tableauを触ったことのある人ならほぼ同じような操作感で可視化できます。
また弊社がReviewさんと一緒にSnowflake Marketplaceで無料公開している渋谷区の飲食店データに繋いでみると、
こんな感じで地図上へのプロット、ツールヒント的な情報の設定も簡単にできます。すげー。。
ちなみに、今日は紹介できませんでしたが、Streamlitへの実装はSakatokuさんの以下の記事が詳しいです。
Snowflake×Streamlit×PyGWalkerの始め方
おわりに
truestarでは、Snowflake導入検討、導入支援や環境構築まで幅広くサポート可能です。
Snowflakeに興味がある、導入済みだけどもっとうまく活用したい等々ありましたら、ぜひこちらから相談ください!
また、truestarではSnowflake Marketplaceにて、加工済みオープンデータを無償提供するPrepper Open Data Bank、全国の飲食店の情報を集めたデータセットの販売を行っております。(サービスリンク)
これまでのSnowflakeに関する記事はこちら