Skip to content

Streamlit AgGrid: データ可視化の力を解き放つ

データ分析と可視化の領域では、プロセスを簡素化し出力を向上させるツールが常に高い需要があります。Pythonコミュニティで注目されているツールの1つが、Streamlit AgGridです。この強力なツールは、StreamlitのシンプルさとAgGridの汎用性を組み合わせ、インタラクティブなデータアプリケーションを作成するためのユーザーフレンドリーなプラットフォームを提供します。この記事では、Streamlit AgGridの世界に深く入り込み、その特徴、インストールプロセス、カスタマイズオプション、実用的な応用方法について探求します。

StreamlitアプリをTableauのようなUIに変換する素晴らしいデータ分析&データ可視化ツール、PyGWalker (opens in a new tab)をご存知ですか?

PyGWalkerは、自分自身のStreamlitアプリに簡単にTableauのようなUIを埋め込むのを支援するPythonライブラリです。

Streamlitでのデータ可視化のためのPyGWalker (opens in a new tab)

Streamlit AgGridの理解

Streamlit AgGridとは何ですか?

Streamlit AgGridは、PythonのWebアプリケーション用に設計されたオープンソースのグリッドシステムです。Pablo Fonsecaによって作成され、スピードと使いやすさで知られるJavaScriptベースのグリッドシステムであるAgGridを基にしています。Streamlit AgGridは、機械学習とデータサイエンスのWebアプリを構築するための人気フレームワークであるStreamlitにAgGridのパワーをもたらすことで、データ可視化を簡素化するだけでなく、全体的なユーザーエクスペリエンスを向上させるツールです。

Streamlit AgGridの動作原理はどうなっていますか?

Streamlit AgGridは、JavaScriptベースのグリッドシステムであるため、JavaScriptコードを使用して動作します。このため、JsCodeライブラリを使用してPythonと統合されたJavaScriptコードを使用することができます。このライブラリにより、グリッド内でJavaScriptコードを使用できるため、高い柔軟性とカスタマイズ性が実現されます。

Streamlit AgGridは、CSVファイルから読み込んだデータフレームで構成されるGridOptionsBuilderオブジェクトを作成し、設定します。このオブジェクトは、列が編集可能かどうか、チェックボックスが使用されるかどうか、複数の選択が許可されるかどうかを決定するために使用されます。

Streamlit AgGridの特徴

Streamlit AgGridには、多くのエンタープライズ向け機能が搭載されています。それにより、スタイリッシュなグラフやテーブルを作成し、データのビジュアル的な魅力を高めることができます。その中でも注目すべき機能の1つがGridOptionsBuilderです。このツールは、configure_columnsconfigure_selectionconfigure_paginationconfigure_grid_optionsなどのさまざまなメソッドを使用してAgGridの設定を行うことができます。これらのメソッドにより、グリッドを特定のニーズに合わせてカスタマイズすることができます。

Streamlit AgGridのインストールとカスタマイズ

Streamlit AgGridのインストール

システム上でStreamlit AgGridを動作させるためには、特定のライブラリをインポートするだけで簡単です。可変でインタラクティブなテーブルを作成するために、以下の手順を実行します:

pip install streamlit-aggrid

このコマンドでStreamlit AgGridを始めることができます。ただし、詳細は重要です。この記事の次のセクションで、ステップバイステップのインストール手順と必要なライブラリについて詳しく説明します。

Streamlit AgGridのカスタマイズ

Streamlit AgGridは、一つのサイズがすべてに合うツールではありません。ユニークなニーズに合わせて調整できるツールです。列やセルの背景のプロパティを変更したいですか?問題ありません!JavaScriptコードをPythonコードに追加することで、それが可能です。

以下は、簡単な例です:

from streamlit_aggrid import AgGrid, JsCode
 
js_code = JsCode("""
function(params) {
    if (params.value > 0) {
        return {backgroundColor: 'green'}
    } else {
        return {backgroundColor: 'red'}
    }
}
""")
 
gridOptions = {
    'columnDefs': [
        {'headerName': "Value", 'field': "value", 'cellStyle': js_code},
    ],
    ...
}
 
AgGrid(df, gridOptions=gridOptions)

この例では、JsCodeライブラリを使用して、グリッド内でJSコードを使用しています。これにより、セルの値に基づいてセルの背景色を変更することができます。

Streamlit AgGridの実践的な使用ガイド

データとともにStreamlit AgGridを使用する

Streamlit AgGridをインストールしてカスタマイズしたら、それを活用する時がきました。これには、Ag Gridオブジェクトを作成し、画面上に表示することが含まれます。以下は、簡単な例です:

from streamlit_aggrid import AgGrid
 
df = pd.DataFrame(
    np.random.randint(-100, 100, size=(100, 10)),
    columns=list('ABCDEFGHIJ'))
 
AgGrid(df)

この例では、ランダムな値を持つDataFrameを作成し、AgGridを使用して表示しています。ユーザーが必要な更新を行った後、AgGrid内の現在のデータフレームは、get_data関数を使用して取得することができます。

Streamlit AgGridの例とチュートリアル

Streamlit AgGridのパワーと汎用性を実感するためには、実際に操作してみることが役立ちます。次のセクションでは、Streamlit AgGridの使用例を具体的に紹介し、インタラクティブなテーブルの作成から複雑なデータセットの可視化までを説明します。初心者向けのチュートリアルも提供し、この強力なツールを最大限に活用するための知識とスキルを提供します。

以下の例をご覧ください:

例1. 基本的なインタラクティブテーブルの作成

最初の例では、Streamlit AgGridを使用してインタラクティブなテーブルを作成します。

from st_aggrid import AgGrid
import pandas as pd
 
# データをpandas DataFrameにロードする
df = pd.read_csv('your_dataset.csv')
 
# DataFrameをAgGridテーブルで表示する
AgGrid(df)

例2: 複雑なデータセットの可視化

サンプルデータセットに基づいて、AgGridテーブルに表示されたデータを元にインタラクティブなグラフやチャートを作成する方法を示します。

import streamlit as st
from st_aggrid import AgGrid
import pandas as pd
import plotly.express as px
 
# データをpandas DataFrameにロードする
df = pd.read_csv('your_dataset.csv')
 
# DataFrameをAgGridテーブルで表示する
table = AgGrid(df)
 
# テーブルから更新されたデータを取得する
updated_data = table['data']
 
# 更新されたデータに基づいてチャートを作成する
fig = px.bar(updated_data, x='column1', y='column2')
 
# チャートを表示する
st.plotly_chart(fig)

例3. Stramlitで外部データベースに接続する

Streamlit AgGridをGoogle SheetsやSQLデータベースなどの外部データベースに接続することもできます。接続の確立方法、データベースからデータの取得方法、インタラクティブなAgGridテーブルでの表示方法を学びます。データの更新と永続化の方法についても説明し、リアルタイムの共同作業と外部データソースとのシームレスな統合を実現します。

from st_aggrid import AgGrid
import pandas as pd
import gspread
 
# Google Sheetsに接続する
gc = gspread.service_account(filename='credentials.json')
sh = gc.open('your_google_sheet')
worksheet = sh.get_worksheet(0)
 
# Google Sheetsからデータをpandas DataFrameに取得する
data = worksheet.get_all_records()
df = pd.DataFrame(data)
 
# DataFrameをAgGridテーブルで表示する
AgGrid(df)

提供されたサンプルコードは簡略化されているため、特定のユースケースに合わせてファイルパス、認証情報、またはAPI設定などを調整する必要があることに注意してください。

Streamlit AgGridでできる他のこと

データ可視化のためのStreamlit AgGrid

データ可視化はStreamlit AgGridの中心的な機能です。スタイリッシュなグラフやテーブルによるデータの視覚的な表示方法を提供します。以下は、いくつかの特徴です:

  • カスタマイズ可能な列定義:列の外観や動作をStreamlit AgGridでカスタマイズすることができます。
  • インタラクティブな機能:ソート、フィルタリング、列のリサイズなど、Streamlit AgGridはインタラクティブな機能をサポートしています。

大規模データセットのためのStreamlit AgGrid

Streamlit AgGridの主な強みの1つは、大規模データセットの処理能力です。これにより、ビッグデータの分析や可視化に優れたツールとなります。以下は、Streamlit AgGridが大規模データセットを処理する方法のいくつかです:

  • 効率的なレンダリング:Streamlit AgGridは、ビューポートに表示されている行のみをレンダリングします。これにより、パフォーマンスの低下なく大規模データセットを処理することができます。
  • サーバーサイドの操作:Streamlit AgGridは、ソート、フィルタリング、グループ化などのサーバーサイドの操作をサポートしています。これにより、ブラウザのメモリに収まらない大規模データセットを処理することができます。

ウェブアプリケーションのためのStreamlit AgGrid

Streamlit AgGridは、データ分析だけでなく、ウェブアプリケーション開発にも強力なツールです。JavaScriptベースのグリッドシステムがPythonのウェブアプリケーションとシームレスに統合されており、インタラクティブなデータアプリケーションを作成するための使いやすいプラットフォームを提供します。データ分析のダッシュボードや完全なウェブアプリケーションを構築している場合でも、Streamlit AgGridはツールキットに貴重な追加となるでしょう。

機械学習とデータ分析のためのStreamlit AgGrid

Streamlit AgGridは、機械学習やデータ分析のフィールドでも貴重なツールです。大規模なデータセットを処理し、インタラクティブな可視化を作成する能力により、これらのアプリケーションに最適な選択肢となります。以下は、機械学習とデータ分析でStreamlit AgGridを活用する方法の一部です:

  • 探索的データ分析(EDA):Streamlit AgGridのインタラクティブな機能は、EDAに適したツールです。
  • 特徴量選択:データセット内の異なる特徴量の重要性を可視化するために、Streamlit AgGridを使用することができます。
  • モデル評価:Streamlit AgGridを使用して、異なるモデルのパフォーマンスを可視化することができます。

Streamlit AgGridの代替品

Streamlit AgGridは強力なツールですが、Pythonでのデータ可視化には他の選択肢もあります。 PyGWalker (opens in a new tab)は、Streamlit AgGridの代替として優れたツールです。

PyGWalker + Streamlit オンラインデモ (opens in a new tab)

PyGWalker (opens in a new tab)は、自分自身のStreamlitアプリにTableauのようなUIを簡単に組み込むためのPythonライブラリです。

Coding is Fun (opens in a new tab)Sven (opens in a new tab)が制作したこの素晴らしいビデオをチェックして、パワフルなデータ可視化PythonライブラリでStreamlitアプリを強化するための詳細な手順をご覧ください!


PyGWalkerコミュニティへのSvenと彼の素晴らしい貢献 (opens in a new tab)に特別な感謝を表します!

さらに、以下のリソースも参照できます:

PyGWalkerでStreamlitでデータを可視化 (opens in a new tab)

PyGWalker以外にも、以下のような代替手段もあります。それぞれに長所と短所があります:

  • Matplotlib: Pythonで静的、アニメーション、対話型の可視化を作成するための多目的なライブラリ。
  • Seaborn: Matplotlibを基にしたPythonのデータ可視化ライブラリ。魅力的で情報の伝わる統計グラフィックスを描くためのハイレベルなインターフェースを提供します。
  • Plotly: 対話的で出版に適したグラフを作成するためのグラフィングライブラリ。

結論

Streamlit AgGridは、StreamlitのシンプルさとAgGridの多機能性を組み合わせた強力なツールであり、インタラクティブなデータアプリケーションを作成するための使いやすいプラットフォームを提供します。複雑なデータセットを視覚化したいデータサイエンティスト、インタラクティブなアプリケーションを構築するWeb開発者、探索的データ分析を行う機械学習エンジニアなど、さまざまなアプリケーションに対応しています。大規模なデータセットの処理能力、カスタマイズ可能な機能、使いやすさを兼ね備えたStreamlit AgGridは、幅広い用途で優れた選択肢となります。では、なぜ待つのですか?Streamlit AgGridの世界に飛び込んで、インタラクティブなデータ可視化のパワーを発見しましょう!

よくある質問

Streamlit AgGridとは何ですか?

Streamlit AgGridは、PythonのWebアプリケーション向けのオープンソースのグリッドシステムです。StreamlitのシンプルさとAgGridの多機能性を組み合わせ、インタラクティブなデータアプリケーションを作成するための使いやすいプラットフォームを提供しています。

AgGridをレスポンシブにするにはどうすればよいですか?

AgGridをレスポンシブにするには、domLayoutプロパティを使用して 'autoHeight'に設定することができます。これにより、グリッドの高さが自動的にコンテンツに適応されます。また、CSSを使用してグリッドの幅と高さをパーセントで設定することもできます。これにより、グリッドがコンテナのサイズに基づいてリサイズされます。

AgGridのフィルタの高さはどのくらいですか?

AgGridのフィルタの高さは固定されておらず、必要に応じて調整することができます。デフォルトでは、スクロールすることなくコンテンツが収まるだけの行をフィルタに表示します。ただし、フィルタのパラメータで maxDisplayedRowsプロパティを使用することで、フィルタのために表示する最大の行数を設定することができます。

Streamlitコンポーネントとは何ですか?

Streamlitコンポーネントは、Streamlitの機能を拡張するためのPythonライブラリです。他のJavaScriptライブラリやフレームワークとの統合、新しいタイプの可視化の作成、または新しいユーザーインターフェース要素の追加など、さまざまな目的に使用することができます。Streamlit AgGridは、Streamlitコンポーネントの一例です。