Изменение значения df на основе выбора пользователя,streamlitPython

Программы на Python
Ответить
Anonymous
 Изменение значения df на основе выбора пользователя,streamlit

Сообщение Anonymous »

У меня два вопроса в одном
  • Я хочу обновить значения в строке df на основе выбора пользователем< /li>
    Я хочу обновить df (после кнопки отправки), чтобы подмножество параметров («типов») больше не было видно
В исходной задаче пользователю необходимо будет сделать около 30 разделов в различных раундов.
Вот минимальный пример

Код: Выделить всё

import streamlit as st
import pandas as pd

def update_df():
# make df global
global df
# add Selection in orignal df
df["selected"] = True

def write_session_state():
# make df global
global df
# write session state
st.session_state["df"] = df

# create df
d = {'Num': [1, 2, 3, 4, 5, 6, 7, 8, 9],
'types': ["A", "A", " A", "B", "B", "B", "C", "C", "C"]}
df = pd.DataFrame(data=d)
# add Selection columns
df['selected'] = None

# initialize session state
if 'df' not in st.session_state:
st.session_state.df = df

# all options
all_options = df['types'].unique().tolist()

# run until 3 options are selected
while len(df[df['selected'].notnull()]) < 3:

# load session state
st.session_state.df = df

# make a list of all selected types
selected = df['types'][df['selected'].notnull()].unique().tolist()

# selectable options (list comparisons)
selectable = [x for x in all_options if x not in selected]

# only show selectable
df_select = df[df['types'].isin(selectable)]

# draw the df
df_select = st.dataframe(
df_select,
use_container_width=True,
hide_index=True,
on_select=update_df,
selection_mode="multi-row",
)

st.button("Submit", on_click=write_session_state)
  • Я ожидаю, что значение в df['selected'] станет истинным
  • Я бы ожидайте, что df изменится после того, как я нажму кнопку отправки.
Ничего из вышеперечисленного не произойдет.

Подробнее здесь: https://stackoverflow.com/questions/792 ... -streamlit
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»