こんにちは、JS2IIUです。
Streamlitで機械学習などのデータを表示する場合、その元となるデータはNumpy配列やPandasのDataFrameになっていることが多いと思います。今回はNumpy配列やDataFrameの表示方法について説明します。今回もよろしくお願いします。
1. はじめに
Pythonで作成したデータを簡単にWebアプリとして表示できる便利なフレームワーク、それが Streamlit です。
本記事では、PandasのDataFrameやNumPy配列などの表形式のデータを、Streamlitを使って表示する方法を学びます。特に、Streamlitでよく使われる2つの関数:
st.dataframest.table
の違いと使い方を、丁寧に説明します。
2. Streamlitでデータを表示する方法とは?
Streamlitでは、表形式のデータ(行と列があるもの)を表示するために以下の2つの関数を使います:
| 関数名 | 特徴 |
|---|---|
st.dataframe | インタラクティブ(操作可能) |
st.table | 静的(操作不可) |
それぞれの特徴を理解し、使い分けることが、見やすく使いやすいアプリを作る第一歩です。
3. データ準備:PandasとNumPyの簡単なおさらい
Streamlitで表示するための表形式のデータは、主に以下の2つで用意されることが多いです。
🐼 Pandas DataFrameとは?
PandasのDataFrameは、表形式のデータを扱うためのデータ構造です。
import pandas as pd
df = pd.DataFrame({
"名前": ["Alice", "Bob", "Charlie"],
"年齢": [25, 30, 35],
"職業": ["エンジニア", "デザイナー", "マネージャー"]
})🔢 NumPy配列(2次元)
NumPy配列は、数値データを中心に扱う配列構造です。
import numpy as np
data = np.array([[1, 2], [3, 4], [5, 6]])4. st.dataframe の使い方と特徴
st.dataframeは、スクロール・並び替え・列幅の自動調整が可能なインタラクティブな表示用関数です。
✅ 特徴
- 列のソートができる
- 表が大きくてもスクロールできる
- カーソルで列幅の調整が可能
✍️ 使用方法:ステップバイステップ
ステップ1:基本のPandas DataFrameを表示
import streamlit as st
import pandas as pd
df = pd.DataFrame({
"名前": ["Alice", "Bob", "Charlie"],
"年齢": [25, 30, 35],
"職業": ["エンジニア", "デザイナー", "マネージャー"]
})
st.dataframe(df)
ステップ2:幅や高さの指定(オプション)
st.dataframe(df, width=600, height=300)
ステップ3:NumPy配列でもOK
import numpy as np
array = np.array([[1, 2], [3, 4], [5, 6]])
st.dataframe(array)
5. st.table の使い方と特徴
st.tableは、静的なテーブルを表示する関数です。インタラクティブな操作はできませんが、見た目が整った表をきれいに表示できます。
✅ 特徴
- 表全体を一度に表示
- スクロール不可
- 並び替え不可
✍️ 使用方法:ステップバイステップ
ステップ1:基本の表示
st.table(df)
ステップ2:NumPy配列の表示
st.table(array)
6. st.dataframe と st.table の違いまとめ
以下の表に、2つの関数の違いをまとめます。
| 特徴 | st.dataframe | st.table |
|---|---|---|
| 表の種類 | インタラクティブ表示 | 静的表示 |
| 並び替え | 可能 | 不可 |
| スクロール | 可能(行・列が多くても) | 不可(全体が表示される) |
| 見た目 | 実用的 | きれい・シンプル |
| 適した場面 | データ確認、操作可能な表 | 結果の提示、プレゼン用 |
✅ 使い分けのポイント
- データを確認・操作したいとき →
st.dataframe - 小さい表をきれいに見せたいとき →
st.table
7. 応用例:DataFrameスタイルを活かす表示
st.dataframeでは、Pandasのスタイル設定もある程度反映されます。たとえば、最大値に色をつけるなどの視覚的な工夫ができます。
styled_df = df.style.highlight_max(axis=0)
st.dataframe(styled_df)
これは、データの中で目立たせたい部分があるときに便利です。
8. まとめ
本記事では、Streamlitでデータを表示する方法として、st.dataframeとst.tableを紹介しました。
| 使い方 | 適した用途 |
|---|---|
st.dataframe | データの確認・インタラクティブな表示 |
st.table | 結果の提示・見栄えの良い静的表示 |
データサイズや目的に応じて、上手に使い分けましょう。
9. 参考リンク
最後に書籍のPRです。
24年9月に出版された「ハイパーモダンPython-信頼性の高いワークフローを構築するモダンテクニック」、Claudio Jolowicz著、嶋田、鈴木訳。開発環境の構築、プロジェクトの管理、テストに関して実践的な内容でとても参考になる一冊です。ぜひ手に取ってみてください。
最後まで読んでいただきありがとうございます。


コメント