こんにちは、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
- 概要: 表示するデータ(必須)。
- タイプ: Pandas DataFrame, NumPy 配列, Python リストなど。
- 例:
import pandas as pd
df = pd.DataFrame({"名前": ["Alice", "Bob"], "得点": [85, 90]})
st.dataframe(df)
2. width
- 概要: テーブルの幅(ピクセル指定)。
- タイプ:
intまたはNone(デフォルト)。 - 例:
st.dataframe(df, width=500)
3. height
- 概要: テーブルの高さ(ピクセル指定)。
- タイプ:
intまたはNone(デフォルト)。 - 例:
st.dataframe(df, height=200)
4. use_container_width
- 概要: テーブルを親コンテナの幅にフィットさせるか。
- タイプ:
bool(デフォルト:False)。 - 例:
st.dataframe(df, use_container_width=True)
5. hide_index
- 概要: インデックス列を表示しない設定。
- タイプ:
boolまたはNone(デフォルト:None)。 - 例:
st.dataframe(df, hide_index=True)
6. column_order
- 概要: 表示する列の順序を指定。
- タイプ: list または None。
- 例:
st.dataframe(df, column_order=["得点", "名前"])
7. column_config
- 概要: 列の名前やフォーマットを設定。
- タイプ: dict または None。
- 例:
st.dataframe(
df,
column_config={
"得点": "スコア",
"名前": {"name": "氏名", "type": "text"}
}
)
8. key
- 概要: セッション内で一意にするためのキー。
- タイプ: str または None。
- 例:
st.dataframe(df, key="unique_table")
9. on_select
- 概要: ユーザーが選択したセルのデータを取得。
- タイプ: “ignore” または関数。
- 例:
def handle_select(selection):
st.write(f"選択された行: {selection}")
st.dataframe(df, on_select=handle_select)
10. selection_mode
- 概要: 行の選択モードを設定。
- タイプ: “multi-row”, “single-row”, または “none”(デフォルト)。
- 例:
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>


コメント