📊

PyGWalkerをStreamlitで動作させてみた

2023/05/08に公開

Tableauが使えない状況だったのでTableauみたいな分析ツールを使いたく、いいものはないかと探したところ、PyGWalkerというツールを見つけました。
Streamlitに対応していたので、ファイルのアップロードをドラッグ&ドロップで直感的に利用できるように実装してみました。

PyGWalkerとは

PyGWalkerは、pandasやpolarsのデータフレームをTableauスタイルのユーザインタフェースにてデータ分析・可視化をできるようにするツールです。
Tableauのオープンソースの代替品Graphic WalkerをPythonで実行できるようにしたもののようです。
PyGWalkerは、"Python binding of Graphic Walker "の略で、"Pig Walker "と発音します。

https://github.com/Kanaries/pygwalker

画面イメージ

Dry Bean Datasetをプロットした場合の例。

StreamlitでPyGWalkerを動作させる手順

簡単に利用できるようにGitHubにコードをアップロードしましたので、そちらもご覧ください。
https://github.com/k-nai/streamlit_pygwalker_app

1. パッケージのインストール

pipを最新の状態にして、必要なパッケージをインストールしてください。

# pipの更新
$ pip install --upgrade pip
# パッケージのインストール
$ pip install pandas streamlit pygwalker

2. Streamlitのコード作成

以下のコードをstreamlit_app.pyとして保存してください。

streamlit_app.py
import pandas as pd
import pygwalker as pyg
import streamlit as st

# ワイド表示
st.set_page_config(layout="wide")

# タイトル
st.title("Data Analysis with PyGWalker.")

# データフレームの用意
df = None

# ファイル選択
with st.sidebar:
    uploaded_files = st.file_uploader("Choose a CSV file")
    if uploaded_files is not None:
        df = pd.read_csv(uploaded_files)

# pygwalkerで表示
pyg.walk(df, env='Streamlit')

3. Streamlitの起動

streamlit_app.pyを保存したディレクトリに移動して、以下を実行してください。

# streamlitの実行
$ streamlit run streamlit_app.py

実行後、以下のような画面が開かれます。
立ち上がらない場合は、ブラウザを開きhttp://localhost:8501をURLに入力してください。

サイドバーに分析したcsvファイルを選択、またはドラッグ&ドロップすることで、Tableauみたいに分析ができます。

実行を停止する際は、ターミナルでCtr + cキーを押して、停止してください。

Discussion