🧮 Streamlit データ表示・編集 ― 表・編集グリッド・ページング

対象バージョン v1.58 | 最終更新 2026-06-19 | 更新確認の目安:毎月

最新の実バージョンはプレイグラウンドst.__version__ を表示)で常に確認できます。

このページでわかること

  • Streamlit でデータを「見せる/編集する/ページ送りする」UIが、Pythonの数行で作れること
  • 各ウィジェットがどのバージョンから使えるか(Tierバッジで明記)
  • 同じことを React/Next.js でやる場合との使い分け
  • 実際に触れるプレイグラウンドと、ui-memo内の対応ページへの導線

ウィジェット一覧

導入バージョンの新しい順。各ウィジェットに導入バージョンの目安(Tier)を併記しています。

st.pagination のページ送りUIと表

st.pagination

Tier A導入 v1.58〜★ 主役

ページ送りUI。st.dataframe などと組み合わせて大きなデータをページングする。返り値が現在ページ番号なので、iloc でスライスして表示するだけ。v1.58 で追加された新顔で、それ以前は selectboxnumber_input で自前のページングを書く必要があった。

python
page = st.pagination(num_pages, default=1)
per = 10
st.dataframe(df.iloc[(page-1)*per : page*per], hide_index=True)

Reactとの比較:React ではページネーションは自前実装かライブラリ(TanStack Table 等)。URL同期や細かな制御は React 側が自由な反面、Streamlit は状態管理込みで数行で完結する。

ページネーションの実装比較を見る →
st.data_editor の編集可能なグリッド

st.data_editor

Tier B導入 v1.23〜★ 主役

セルを直接編集できるデータグリッド。num_rows="dynamic" で行の追加・削除も可能。列ごとに型(数値・チェックボックス・選択肢など)を column_config で指定でき、戻り値として編集後の DataFrame が返る。社内ツールの「表をその場で直す」UIが標準機能だけで組める。

python
edited = st.data_editor(
    df,
    num_rows="dynamic",   # 行の追加・削除を許可
    hide_index=True,
)
# edited に編集結果の DataFrame が入る

Reactとの比較:編集可能グリッドは React だと AG Grid / TanStack Table 等の専用ライブラリ+実装が要る領域。見た目や列挙動の作り込みは React が自由だが、Streamlit は「編集できる表」を即用意できるのが強い。

データグリッドの実装比較を見る →
st.dataframe の表示テーブル

st.dataframe

Tier C導入 初期〜

ソート・検索・列メニューが標準装備の表示テーブル。pandas の DataFrame を渡すだけ。仮想スクロールで大きめのデータも扱える。表示専用(編集不可)。

python
st.dataframe(df, hide_index=True, use_container_width=True)

Reactとの比較:単純な表示だけなら React でも軽いが、ソート・検索込みで1行で出るのは Streamlit の手軽さ。大量データの仮想化や細かな列制御を詰めるなら React のテーブルライブラリ。

データグリッドの実装比較を見る →
st.metric のKPI表示

st.metric

Tier C導入 初期〜

数値と増減デルタを大きく見せる KPI 表示。st.columns と組み合わせてダッシュボードの指標行に。

python
st.metric("UU", "2,840", "+12%")

Reactとの比較:React なら自前のカードコンポーネント。Streamlit は1行で増減の色分けまで付く。

st.json の折りたたみJSONビュー

st.json

Tier C導入 初期〜

辞書・リストを折りたたみ可能な JSON ビューで表示。API レスポンスや設定の確認・デバッグに便利。

python
st.json({"library": "Streamlit", "ok": True})

Reactとの比較:React なら react-json-view 等。中身の確認用途では Streamlit 標準で十分。

Reactでやるなら(使い分けまとめ)

データ表示・編集は、Streamlit の「1行で出る」強みが最も効くゾーン。ソート・検索・編集グリッド・ページングが標準同梱で、データアプリや社内ダッシュボードを最短距離で組める。

一方で、公開Webで表の見た目・列挙動・URL同期・大量データの仮想化まで作り込むなら、React 側(TanStack Table / AG Grid 等)の自由度が必要になる。

目安は、試作・社内向けのデータアプリなら Streamlit、本番の公開プロダクトで作り込むなら React(公開Webが求めるSEO・デザイン制御・大量アクセスに Streamlit は構造的に弱く、逆に開発の速さで強いため)。 どちらが上ではなく、優先するもの(速さか、作り込みか)で選ぶ。 Streamlit と React/Next.js の違いはStreamlit UI ガイド(総括)で詳しく解説しています。

この分野の深掘りは ui-memo のデータグリッドページネーション比較ページへ。

※トレードオフ(参考):Streamlit は手軽な反面、列・セルの細かな見た目制御や、SEOが要る公開ページには不向き。React のテーブルは自由度が高い反面、同じ表を出すまでの実装量は多い。

AIプロンプトテンプレ

Streamlit でデータ表示・編集UIを作るときの、AIへの指示テンプレ。

ページング付きテーブル

text
Streamlit で pandas DataFrame を10行ずつページ送り表示したい。
st.pagination で現在ページを取得し、iloc でスライスして st.dataframe に渡す実装を書いて。

編集可能な表+保存

text
Streamlit の st.data_editor で表を編集できるようにして、
「保存」ボタンで編集後の DataFrame を CSV に書き出す実装を書いて。
num_rows="dynamic" で行追加も許可して。

KPI ダッシュボード行

text
Streamlit で st.columns と st.metric を使い、
UU・PV・直帰率の3指標を前期比デルタ付きで横並びに表示して。

▶ 実際に触ってみる ― データ表示・編集(プレイグラウンド)

本物の Streamlit がブラウザで動く。常に最新の実行バージョンを表示。

よくある質問

st.dataframe と st.data_editor の違いは?

st.dataframe は表示専用(ソート・検索は可)。st.data_editor はセルを直接編集でき、行の追加・削除や戻り値での編集結果取得ができます。

st.pagination は古いバージョンでも使えますか?

v1.58 で追加された新しいウィジェットです。それ以前のバージョンでは selectbox や number_input でページ番号を受け取り、自前でページングします。

大量データでも快適に表示できますか?

st.dataframe は仮想スクロール対応で数万行規模も扱えます。ただし全件をサーバーに載せる構造上、巨大データはページングや事前集計を併用するのが安全です。

data_editor の編集結果はどこに保存されますか?

自動保存はされません。st.data_editor の戻り値(編集後の DataFrame)を受け取り、自分で CSV やデータベースへ保存します。