streamlitのボタンの追加

Streamlitでは、ボタンなどのGUI部品を利用できます。

import numpy as np
import pandas as pd
import streamlit as st

def sample():
    return pd.DataFrame(np.random.randint(0, 10, (6, 3)), columns=["A", "B", "C"])

df = sample()
st.line_chart(df)
if st.button("DataFrame"):
    st.dataframe(df.T)

ボタンを押すと、表が出る。

if st.button(ラベル):
    ボタンが押されたときの処理

ボタンを押すと、ボタンの下にDataFrameが転置されて出力されます

キャッシュについて

Streamlitでは「ボタンを押す」などのアクションをすると、streamlitコマンドで起動したPythonファイルを最初から実行します。

Streamlitには、関数を実行した結果をキャッシュする機能があります。キャッシュを使うことで、「時間がかかるけど結果の変わらない処理」を2回目以降はスキップして、結果を取得できます。
また、関数の定義を変更したり、呼び出し時の実引数を変更したりすると、キャッシュを使わずに処理をします。

キャッシュを使うためには、関数に@st.cacheデコレーターをつけます。

import numpy as np
import pandas as pd
import streamlit as st

@st.cache これのこと
def sample():
    return pd.DataFrame(np.random.randint(0, 10, (6, 3)), columns=["A", "B", "C"])


df = sample()
st.line_chart(df)
if st.button("DataFrame"):
    st.dataframe(df.T)

チェックボックス(st.checkbox)に変える

import numpy as np
import pandas as pd
import streamlit as st


@st.cache
def sample():
    return pd.DataFrame(np.random.randint(0, 10, (6, 3)), columns=["A", "B", "C"])


df = sample()
st.line_chart(df)
if st.checkbox("DataFrame"):
    st.dataframe(df.T)

コメント

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