|
import streamlit as st |
|
import pandas as pd |
|
|
|
|
|
|
|
|
|
|
|
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) |
|
|
|
|
|
edited_df = st.data_editor( |
|
df_with_selections, |
|
hide_index=True, |
|
column_config={"Select": st.column_config.CheckboxColumn(required=True)}, |
|
disabled=df_chapters.columns, |
|
) |
|
|
|
|
|
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_chapters_list = selected_chapters.iloc[:,0].tolist() |
|
|
|
selected_rows_list = selected_chapters.iloc[:,6].tolist() |
|
|
|
|
|
if selected_chapters is not None: |
|
st.session_state.selected_chapters = selected_chapters_list |
|
st.session_state.selected_rows = selected_rows_list |