kculculate / app_streamlit.py
Kpenciler's picture
Upload 5 files
1058ca8
raw
history blame
969 Bytes
import streamlit as st
from utils import get_calculated_df, get_info, text2oddslist
amount: int = int(st.number_input("amount", min_value=100, value=3000, step=100))
text: str = st.text_area("text", "")
# ボタンを作る
st.button("calculate")
if text:
df = get_calculated_df(amount, text2oddslist(text))
# dataframeを綺麗に出力する
info = get_info(df)
col1, col2 = st.columns(2)
with col1:
st.markdown(f"#### 購入額: ¥ **{info['sum']:,}**")
st.markdown(f"#### 点 数: **{info['num_kind']}** 点")
with col2:
st.metric(
label="払戻",
value=f"¥ {info['refound_mean']:,}",
delta=f"{info['profit_mean']:+,}({info['rate_min']:.0%})",
)
st.markdown("---")
# dfの表示
display_cols = ["odds", "buy", "refound"]
if df["name"].map(lambda name: name != "").any():
display_cols = ["name"] + display_cols
st.dataframe(df[display_cols])