【Streamlit】データを表示する:st.dataframeとst.table

Streamlit
この記事は約6分で読めます。

こんにちは、JS2IIUです。
Streamlitで機械学習などのデータを表示する場合、その元となるデータはNumpy配列やPandasのDataFrameになっていることが多いと思います。今回はNumpy配列やDataFrameの表示方法について説明します。今回もよろしくお願いします。

1. はじめに

Pythonで作成したデータを簡単にWebアプリとして表示できる便利なフレームワーク、それが Streamlit です。

本記事では、PandasのDataFrameやNumPy配列などの表形式のデータを、Streamlitを使って表示する方法を学びます。特に、Streamlitでよく使われる2つの関数:

  • st.dataframe
  • st.table

の違いと使い方を、丁寧に説明します。

2. Streamlitでデータを表示する方法とは?

Streamlitでは、表形式のデータ(行と列があるもの)を表示するために以下の2つの関数を使います:

関数名特徴
st.dataframeインタラクティブ(操作可能)
st.table静的(操作不可)

それぞれの特徴を理解し、使い分けることが、見やすく使いやすいアプリを作る第一歩です。

3. データ準備:PandasとNumPyの簡単なおさらい

Streamlitで表示するための表形式のデータは、主に以下の2つで用意されることが多いです。

🐼 Pandas DataFrameとは?

PandasのDataFrameは、表形式のデータを扱うためのデータ構造です。

Python
import pandas as pd

df = pd.DataFrame({
    "名前": ["Alice", "Bob", "Charlie"],
    "年齢": [25, 30, 35],
    "職業": ["エンジニア", "デザイナー", "マネージャー"]
})

🔢 NumPy配列(2次元)

NumPy配列は、数値データを中心に扱う配列構造です。

Python
import numpy as np

data = np.array([[1, 2], [3, 4], [5, 6]])

4. st.dataframe の使い方と特徴

st.dataframeは、スクロール・並び替え・列幅の自動調整が可能なインタラクティブな表示用関数です。

✅ 特徴

  • 列のソートができる
  • 表が大きくてもスクロールできる
  • カーソルで列幅の調整が可能

✍️ 使用方法:ステップバイステップ

ステップ1:基本のPandas DataFrameを表示

Python
import streamlit as st
import pandas as pd

df = pd.DataFrame({
    "名前": ["Alice", "Bob", "Charlie"],
    "年齢": [25, 30, 35],
    "職業": ["エンジニア", "デザイナー", "マネージャー"]
})

st.dataframe(df)

ステップ2:幅や高さの指定(オプション)

Python
st.dataframe(df, width=600, height=300)

ステップ3:NumPy配列でもOK

Python
import numpy as np

array = np.array([[1, 2], [3, 4], [5, 6]])
st.dataframe(array)

5. st.table の使い方と特徴

st.tableは、静的なテーブルを表示する関数です。インタラクティブな操作はできませんが、見た目が整った表をきれいに表示できます。

✅ 特徴

  • 表全体を一度に表示
  • スクロール不可
  • 並び替え不可

✍️ 使用方法:ステップバイステップ

ステップ1:基本の表示

Python
st.table(df)

ステップ2:NumPy配列の表示

Python
st.table(array)

6. st.dataframe と st.table の違いまとめ

以下の表に、2つの関数の違いをまとめます。

特徴st.dataframest.table
表の種類インタラクティブ表示静的表示
並び替え可能不可
スクロール可能(行・列が多くても)不可(全体が表示される)
見た目実用的きれい・シンプル
適した場面データ確認、操作可能な表結果の提示、プレゼン用

✅ 使い分けのポイント

  • データを確認・操作したいときst.dataframe
  • 小さい表をきれいに見せたいときst.table

7. 応用例:DataFrameスタイルを活かす表示

st.dataframeでは、Pandasのスタイル設定もある程度反映されます。たとえば、最大値に色をつけるなどの視覚的な工夫ができます。

Python
styled_df = df.style.highlight_max(axis=0)
st.dataframe(styled_df)

これは、データの中で目立たせたい部分があるときに便利です。

8. まとめ

本記事では、Streamlitでデータを表示する方法として、st.dataframest.tableを紹介しました。

使い方適した用途
st.dataframeデータの確認・インタラクティブな表示
st.table結果の提示・見栄えの良い静的表示

データサイズや目的に応じて、上手に使い分けましょう。

9. 参考リンク

最後に書籍のPRです。
24年9月に出版された「ハイパーモダンPython-信頼性の高いワークフローを構築するモダンテクニック」、Claudio Jolowicz著、嶋田、鈴木訳。開発環境の構築、プロジェクトの管理、テストに関して実践的な内容でとても参考になる一冊です。ぜひ手に取ってみてください。

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

コメント

タイトルとURLをコピーしました