こんにちは、ナナオです。

今回は小ネタです。

実装

streamlitでも、pandasのDataFrameのスタイルが証できるのでこれを使って以下のように実装します。

実装では特定のカラム(target)の値が10より大きい場合に赤い太字で表示するようにしています。

import pandas as pd
import streamlit as st

def highlight_overdue(row):
    # int64をpythonのint型に変換
    target = row["target"].item()

    # targetが10より大きい場合に赤の太字で表示する
    if isinstance(target, int) and target > 10:
        return ["color: red; font-weight: bold"] * len(row)
    else:
        return [""] * len(row)
        

df = pd.DataFrame([
    {"target": 1},
    {"target": 2},
    {"target": 4},
    {"target": 8},
    {"target": 16},
    {"target": 32},
])

df = df.style.apply(highlight_overdue, axis=1)

st.dataframe(df, width="stretch")

実行すると以下のようになります。

感想

streamlitでスタイルも楽々変更できました。