サイトアイコン アマチュア無線局JS2IIU

【Streamlit】st.column_config.NumberColumnの基本と使い方

こんにちは、JS2IIUです。

st.dataframeで表示するデータの数字表示について、カスタム可能になるNumberColumを紹介します。これにより無機質な数値の羅列から、意味が伝わりやすい表示にレベルアップさせることができます。今回もよろしくお願いします。

はじめに

データフレーム内の数値データを直感的に視覚化したい場合、Streamlitのst.column_config.NumberColumnは非常に便利です。このクラスを使うことで、数値列をカスタマイズし、単位や色付けを追加したり、値の範囲を強調したりすることができます。本記事では、st.column_config.NumberColumnの基本的な使い方と応用例を詳しく解説します。

st.column_config.NumberColumnとは

st.column_config.NumberColumnは、データフレーム内の数値データをカスタマイズするための専用クラスです。このクラスを使用することで、次のような設定を行えます:

主なパラメータの解説

以下は、st.column_config.NumberColumnのシグネチャと各パラメータの詳細です。

st.column_config.NumberColumn(
    label=None, *, 
    width=None, 
    help=None, 
    disabled=None, 
    required=None, 
    default=None, 
    format=None, 
    min_value=None, 
    max_value=None, 
    step=None
)

主な用途

実際の使用例

以下に、NumberColumnを使用した基本的な例を示します。

例:単位とフォーマット付きの数値列表示

import streamlit as st
import pandas as pd
from streamlit.column_config import NumberColumn

# データフレームを作成
data = {
    "Item": ["Item A", "Item B", "Item C"],
    "Price": [1200, 850, 1550],
    "Discount": [0.1, 0.15, 0.2]
}
df = pd.DataFrame(data)

# NumberColumnで列をカスタマイズ
column_config = {
    "Price": NumberColumn(
        label="価格 (円)",
        help="商品の価格(税抜き)",
        format="¥%.0f",  # 円表記で整数
        min_value=0,
        step=50,
    ),
    "Discount": NumberColumn(
        label="割引率",
        help="商品の割引率",
        format="%.0f%%",  # パーセンテージ表記
        max_value=1,
        step=0.05,
    )
}

# カスタム列設定でデータフレームを表示
st.data_editor(df, column_config=column_config)
https://js2iiu.com/wp-content/uploads/2024/11/st_03_01.mov

解説

  1. データ作成
    商品名、価格、割引率を含むデータを作成し、pandas.DataFrameに変換します。
  2. NumberColumnの設定
  1. カスタム表示
    各列に設定したフォーマットと単位が適用され、見やすい数値列が表示されます。

注意点

  1. フォーマット設定
    formatの値は、Pythonの文字列フォーマット(%.2fなど)に従います。
  2. パフォーマンス
    条件付きのスタイル(色やアイコン)を大量のデータに適用する場合、計算効率に注意が必要です。

まとめ

st.column_config.NumberColumnを活用すれば、数値データをより直感的で見やすい形式で表示できます。フォーマットや範囲設定、動的スタイルの適用を組み合わせることで、データの可読性や操作性を大幅に向上させることができます。

次回は、チェックボックス列の表示をカスタマイズできるst.column_config.CheckboxColumnについて解説します。お楽しみに!

公式ドキュメントはこちら:st.column_config.NumberColumn

https://docs.streamlit.io/develop/api-reference/data/st.column_config/st.column_config.numbercolumn

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

モバイルバージョンを終了