見出し画像

【簡単】Pythonアプリでデータ分析!PyGWalkerで可視化を爆速実装!

Pythonでデータ分析を行う際、可視化は必須と言えるでしょう。しかし、グラフ描画のためのコードを書くのは面倒に感じる方も多いのではないでしょうか?

今回は、そんな悩みを解決してくれるPyGWalkerというライブラリを使ったアプリの実装方法をご紹介します。PyGWalkerを使うと、わずか数行のコードでインタラクティブな可視化ダッシュボードを作成できます。

PyGWalkerは、Streamlitのコンポーネントとして動作し、Pandasのデータフレームをドラッグ&ドロップで簡単に可視化できるツールです。

対象読者

  • Pythonの基本的な知識がある方

使用環境

  • Windows10

  • Python 3.11.4

今回の内容

  1. 仮想環境構築

  2. PyGWalkerのインストール

  3. アプリの実装

PyGWalerの画面

1. PyGWalkerのインストール

仮想環境が有効化されたら、必要なライブラリをインストールします。

pip install pandas streamlit openpyxl pygwalker

2. アプリの実装

以下のコードをapp.pyというファイル名で保存します。

import pandas as pd
import streamlit as st
import streamlit.components.v1 as stc # streamlit 機能を拡張
import openpyxl
import pygwalker as pyg

# pip install pandas streamlit openpyxl pygwalker

st.set_page_config(page_title='PyGWalker', layout='wide')
st.title('PyGWalker')

#encoding設定
selected_encoding = st.selectbox(
    'encodingを選択', 
    ['utf-8', 'shift_jis', 'cp932'],
    key='encoding')

uploaded_file = st.file_uploader('files of csv', type='csv')

if uploaded_file:
    df = pd.read_csv(uploaded_file, encoding=selected_encoding)
    
    # # PyGWalkerを使用してHTMLに変換 return_html=Trueとすることで、HTML形式の文字列
    pyg_html = pyg.walk(df, return_html=True)
    ## 生成したHTMLをStreamlitアプリケーションに埋め込む
    stc.html(pyg_html, scrolling=True, height=1000) #CSS pixels

コード解説

  • st.set_page_configでページタイトルとレイアウトを設定します。

  • st.titleでページタイトルを表示します。

  • st.selectboxでCSVファイルのエンコーディングを選択できるようにします。

  • st.file_uploaderでCSVファイルをアップロードできるようにします。

  • ファイルがアップロードされたら、Pandasでデータフレームとして読み込みます。

  • pygwalker.walkでデータフレームをHTMLに変換し、stc.htmlでStreamlitアプリケーションに埋め込みます。

アプリの実行

ターミナルで以下のコマンドを実行すると、アプリが起動します。

streamlit run app.py

ブラウザでhttp://localhost:8501にアクセスすると、PyGWalkerを使ったデータ分析アプリが表示されます。

使い方

  1. CSVファイルをドラッグ&ドロップ、またはBrowse Filesボタンをクリックしてアップロードします。

  2. 必要に応じてエンコーディングを選択します。

  3. アップロードされたデータが表形式で表示されます。

  4. Visualizationタブをクリックすると、PyGWalkerの可視化ツールが表示されます。

  5. 左側のField Listから項目をドラッグ&ドロップして、グラフを作成できます。

まとめ

PyGWalkerを使うことで、わずか数行のコードでインタラクティブな可視化ダッシュボードを作成することができました。データ分析の効率化にぜひ活用してみてください。

よろしければサポートお願いします! いただいたサポートはクリエイターとしての活動費に使わせていただきます!