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)
コメント