我在streamlit中构建一个应用程序,在其中我有一个输入数据框,其中我有一个折扣列,如裤子,衬衫,牛仔裤等列出的所有产品,我想给予用户的灵活性,以更新任何项目的折扣值。
首先我有一个选择框(下拉)其中用户将选择一个项目,然后有一个滑块,用户可以从其中修改该项目的折扣值在0到100%之间。在选择下拉项目并更改滑块上的折扣值后,用户将单击更新按钮,之后该折扣值将进入原始 Dataframe 并将得到更新。但现在的问题是,如果用户要为下一个项目执行此任务并遵循相同的过程,则在单击更新按钮后,折扣将针对第二个项目进行修改,但将恢复为第一个项目的原始折扣。
我在这里想不出任何逻辑。
我试过:
Key_Input = st.sidebar.selectbox('Select item',df['item'].unique().tolist())
if Key_Input:
Discount = st.sidebar.slider('Discount', 0.0,1.0, 0.01)
if st.sidebar.button('Update Discount Value'):
df_new['DISC'] = np.where((df_new['item'] == Key_Input, Discount,df_new['DISC'])
st.write(df_new)
1条答案
按热度按时间ac1kyiln1#
你可以使用
st.experimental_data_editor
;more info in docs .