サイトアイコン アマチュア無線局JS2IIU

Streamlitでインタラクティブなデータ表示を実現!st.dataframeの使い方完全ガイド

こんにちは、JS2IIUです。

Streamlitのst.dataframeは、データをインタラクティブなテーブル形式で表示できる便利な関数です。本記事では、st.dataframeのすべてのパラメータを解説し、実際に使えるサンプルコードを提供します。今回もよろしくお願いします。

st.dataframeの概要

st.dataframeを使うと、DataFrameや類似のデータ構造を以下の特徴を持つテーブルとして表示できます。

公式のシグネチャは次の通りです:

st.dataframe(
    data=None,
    width=None,
    height=None,
    *,
    use_container_width=False,
    hide_index=None,
    column_order=None,
    column_config=None,
    key=None,
    on_select="ignore",
    selection_mode="multi-row"
)

各パラメータの詳細

1. data

import pandas as pd
df = pd.DataFrame({"名前": ["Alice", "Bob"], "得点": [85, 90]})
st.dataframe(df)

2. width

st.dataframe(df, width=500)

3. height

st.dataframe(df, height=200)

4. use_container_width

st.dataframe(df, use_container_width=True)

5. hide_index

st.dataframe(df, hide_index=True)

6. column_order

st.dataframe(df, column_order=["得点", "名前"])

7. column_config

st.dataframe(
    df,
    column_config={
        "得点": "スコア",
        "名前": {"name": "氏名", "type": "text"}
    }
)

8. key

st.dataframe(df, key="unique_table")

9. on_select

def handle_select(selection):
    st.write(f"選択された行: {selection}")

st.dataframe(df, on_select=handle_select)

10. selection_mode

st.dataframe(df, selection_mode="single-row")

実用例:サンプルコード集

例1: 基本的なDataFrameの表示

import pandas as pd
import streamlit as st

data = {"名前": ["Alice", "Bob", "Charlie"], "得点": [88, 92, 85]}
df = pd.DataFrame(data)

st.title("基本的なテーブル表示")
st.dataframe(df, use_container_width=True)

例2: 列の順序と名前を変更

import pandas as pd
import streamlit as st

data = {"名前": ["Alice", "Bob", "Charlie"], "得点": [88, 92, 85]}
df = pd.DataFrame(data)

st.title("列の順序と名前のカスタマイズ")
st.dataframe(
    df,
    column_order=["得点", "名前"],
    column_config={
        "名前": {"name": "氏名"},
        "得点": {"name": "スコア"}
    }
)

例3: 行選択を有効化

import pandas as pd
import streamlit as st

data = {"名前": ["Alice", "Bob", "Charlie"], "得点": [88, 92, 85]}
df = pd.DataFrame(data)

def on_select(selection):
    st.write(f"選択された行: {selection}")

st.title("行選択が可能なテーブル")
st.dataframe(df, selection_mode="single-row", on_select=on_select)

まとめ

st.dataframeは、データの視覚化やインタラクションを簡単に実現できる強力なツールです。本記事で解説した各パラメータを活用し、表示内容をカスタマイズしてみてください。

詳細な情報は、公式ドキュメントをご覧ください。

st.dataframe - Streamlit Docs
st.dataframe displays a dataframe as an interactive table.

この記事で提供したサンプルコードをベースに、自分のプロジェクトで試してみましょう!

最後まで読んでいただきありがとうございました。73

<PR> 更なるスキルアップを目指す方に<PR>

モバイルバージョンを終了