import streamlit as st import pandas as pd #for k, v in st.session_state.items(): # st.session_state[k] = v #st.title("📘Map internal description to SBS codes V2.0") st.subheader("Select specific Chapter for quicker results") df_chapters = pd.read_csv("SBS_V2_0/Chapter_Index_Rows.csv") startrowindex_list = df_chapters["from_row_index"].tolist() endrowindex_list = df_chapters["to_row_index"].tolist() allchapters_rows_list = [] for s, e in zip(startrowindex_list, endrowindex_list): eachchapter_rows_list = list(range(s,e)) allchapters_rows_list.append(eachchapter_rows_list) df_chapters['range_of_rows'] = allchapters_rows_list def dataframe_with_selections(df_chapters: pd.DataFrame, init_value: bool = False) -> pd.DataFrame: df_with_selections = df_chapters.copy() df_with_selections.insert(0, "Select", init_value) # Get dataframe row-selections from user with st.data_editor edited_df = st.data_editor( df_with_selections, hide_index=True, column_config={"Select": st.column_config.CheckboxColumn(required=True)}, disabled=df_chapters.columns, ) # Filter the dataframe using the temporary column, then drop the column selected_rows = edited_df[edited_df.Select] return selected_rows.drop('Select', axis=1) if "selected_chapters" not in st.session_state: st.session_state['selected_chapters'] = [] st.session_state['selected_rows'] = [] selected_chapters_list = st.session_state.selected_chapters selected_rows_list = st.session_state.selected_rows selected_chapters = dataframe_with_selections(df_chapters) st.write("Your selection:") st.write(selected_chapters) #selected_rows = dataframe_with_selections(df_chapters) #st.write("Your selection:") #st.write(selected_rows) selected_chapters_list = selected_chapters.iloc[:,0].tolist() #st.write("SELECTED CHAPTERS: ", selected_chapters_list) selected_rows_list = selected_chapters.iloc[:,6].tolist() #st.write("SELECTED ROWS: ", selected_rows_list) if selected_chapters is not None: st.session_state.selected_chapters = selected_chapters_list st.session_state.selected_rows = selected_rows_list