Streamlit dataframeとは?結論から言うと「Pythonだけで表をWeb表示できる仕組み」
Streamlit dataframeとは、Pythonのデータ分析ライブラリであるpandasのDataFrameを、Streamlitというフレームワーク上で手軽にWeb表示・操作できるようにする機能のことです。難しいHTMLやCSS、JavaScriptを書かなくても、st.dataframe(df)のようにたった1行で表を表示できます。
この記事では、Streamlit dataframeの基本から、st.dataframeとst.tableの違い、便利なオプション、注意点、そして実際の活用シーンまでを初心者向けに整理します。読み終えるころには、自分のデータをWebアプリで見せるイメージがつかめるはずです。
Streamlit dataframeの基本:インストールと最小コード
まずはStreamlitのインストールから始めましょう。Python環境があれば、pipで簡単に入ります。
pip install streamlit pandas
次に、以下のようなPythonファイル(例:app.py)を作成します。
import streamlit as st
import pandas as pd
df = pd.DataFrame({
"商品": ["A", "B", "C"],
"売上": [120, 340, 210],
"在庫": [15, 8, 22]
})
st.dataframe(df)
実行はターミナルで次のコマンドを打つだけです。
streamlit run app.py
するとブラウザが自動で開き、表が表示されます。ここで注目したいのは、HTMLやCSSを一切書いていないという点です。Streamlitが内部でいい感じにレンダリングしてくれるので、初心者でも迷わず使えます。
st.dataframeとst.tableの違い:どっちを使えばいい?
Streamlitで表を表示する関数は主に2つあります。st.dataframeとst.tableです。それぞれの特徴を比較してみましょう。
| 項目 | st.dataframe | st.table |
|---|---|---|
| 表示形式 | インタラクティブな表 | 静的な表 |
| スクロール | 可能 | 不可(全行表示) |
| 並べ替え | 列ヘッダーをクリックで可能 | 不可 |
| 向いている用途 | データ探索・大量データ | 小さな集計結果の提示 |
結論としては、迷ったらst.dataframeで問題ありません。ユーザーが並べ替えたりスクロールしたりできるため、データ分析アプリではほぼ必須の機能です。一方、st.tableは「この表をそのまま見せたい」という固定表示に向いています。
Streamlit dataframeの便利なオプションとカスタマイズ
st.dataframeには、表示を調整するための引数がいくつか用意されています。よく使うものを紹介します。
width/height:表の幅・高さをピクセル指定use_container_width=True:コンテナの幅に合わせて自動調整hide_index=True:インデックス列を非表示column_config:列ごとに表示形式を指定(数値のフォーマット、プログレスバー、リンクなど)
たとえば、次のように書くとインデックスを隠し、売上列をプログレスバーで表示できます。
st.dataframe(
df,
hide_index=True,
column_config={
"売上": st.column_config.ProgressColumn(
"売上",
min_value=0,
max_value=500,
format="%d"
)
}
)
このように、ほんの数行で見た目をぐっと良くできます。データをただ並べるだけでなく、伝わりやすくする工夫ができるのがStreamlit dataframeの強みです。
Streamlit dataframeのメリット・デメリット
ここで、Streamlit dataframeの良い点と注意点を整理しておきましょう。
メリット
- Pythonだけで完結するので、フロントエンドの知識が不要
- pandasのDataFrameをそのまま渡せる
- 並べ替え・スクロールなどインタラクティブな操作が標準で可能
- リアルタイムでデータやグラフを更新できる
- ローカル環境ではサーバー構築が不要(Streamlitが自動で立ち上げる)
デメリット・注意点
- 表示できるデータ量には限界がある。数百万行をそのまま表示すると動作が重くなる
- 細かいデザイン調整は苦手。凝ったUIを作りたいなら別のフレームワークが向いている
- 他の人に公開するにはクラウド上へのデプロイが必要
- セキュリティ面では、公開範囲や認証の設定を自分で管理する必要がある
特に大量データを扱う場合は、事前にフィルタリングや集計を行ってから表示するのがおすすめです。
Streamlit dataframeがおすすめなシーン
Streamlit dataframeは、次のような場面で特に力を発揮します。
- 社内の売上データや在庫データを手軽に可視化したい
- 機械学習モデルの予測結果を表で確認したい
- CSVファイルをアップロードして中身をすぐ確認したい
- データ分析の結果をチームに共有したい
逆に、デザインにこだわった複雑なWebサービスを作りたい場合は、DjangoやFlask、FastAPIなどのフレームワークを検討したほうがよいでしょう。Streamlitはあくまで「データを見せる」「分析結果を共有する」ことに特化しています。
Streamlit dataframeを使うときの注意点とベストプラクティス
最後に、実際に使ううえで押さえておきたいポイントをまとめます。
- データ量を意識する:表示前に
df.head(100)などで絞る、またはフィルタ機能を付ける - キャッシュを活用する:
@st.cache_dataデコレータを使うと再計算を防げる - 列名をわかりやすく:英語のカラム名は日本語にリネームすると親切
- 公開範囲を確認:Streamlit Community Cloudで公開する場合は、機密情報が含まれていないかチェック
- 公式ドキュメントを参照:バージョンによって引数が変わることもあるため、最新情報を確認する
これらの点を意識するだけで、ぐっと使いやすく安全なアプリになります。
まとめ:Streamlit dataframeでデータをもっと身近に
Streamlit dataframeは、Pythonだけで手軽に表をWeb表示できる非常に便利な機能です。st.dataframeを使えば、並べ替えやスクロールなどのインタラクティブな操作も標準で備わっており、データ分析の結果を共有するのに最適です。一方で、大量データや凝ったデザインには向かないという注意点もあります。
まずは小さなデータから始めて、少しずつオプションやカスタマイズを試してみてください。Streamlit dataframeを使いこなせば、あなたのデータ分析がもっと楽しくなるはずです。

コメント