busan_data_navigator / _pages /data_selection.py
atoye1's picture
pushing for deployment
18fb155
Raw
History Blame Contribute Delete
2.02 kB
import streamlit as st
from utils import load_datasets, save_session_cache
from streamlit_extras.grid import grid
import pandas as pd
from streamlit_extras.dataframe_explorer import dataframe_explorer
st.title("๐Ÿ’ ๋ฐ์ดํ„ฐ ์ง์ ‘ ์„ ํƒํ•˜๊ธฐ")
# Section 1: Data Selection
st.header("1๏ธโƒฃ ๋ฐ์ดํ„ฐ ๋ชฉ๋ก ํ•„ํ„ฐ๋ง ํ•˜๊ธฐ")
dataframe = load_datasets()
dataframe['keywords'] = dataframe['keywords'].apply(lambda x: ', '.join(x) if isinstance(x, list) else x)
list_columns = [col for col in dataframe.columns if dataframe[col].apply(lambda x: isinstance(x, list)).all()]
dict_columns = [col for col in dataframe.columns if dataframe[col].apply(lambda x: isinstance(x, dict)).all()]
# list ํƒ€์ž…์˜ ์ปฌ๋Ÿผ์„ ๋“œ๋ž
dataframe = dataframe.drop(columns=list_columns)
dataframe = dataframe.drop(columns=dict_columns)
filtered_df = dataframe_explorer(dataframe, case=False)
st.dataframe(filtered_df, use_container_width=True)
st.divider()
st.header("2๏ธโƒฃ ๋ถ„์„ ๋ฐ์ดํ„ฐ ์„ ํƒํ•˜๊ธฐ")
selectable_dataset_list = [None] + filtered_df['title'].values.tolist()
# Select data for analysis
selected_dataset = st.selectbox(
"๐Ÿ” ๋ถ„์„ํ•  ๋ฐ์ดํ„ฐ๋ฅผ ์„ ํƒํ•˜์„ธ์š”",
selectable_dataset_list,
index=selectable_dataset_list.index(st.session_state.selected_dataset) if st.session_state.selected_dataset in selectable_dataset_list else 0)
st.session_state['selected_dataset'] = selected_dataset
st.divider()
# session_id=save_session_cache(st.session_state.to_dict())
def switch_to_summarization():
st.switch_page(f"_pages/summarization.py")
st.header("3๏ธโƒฃ ๋ฐ์ดํ„ฐ ์š”์•ฝ์œผ๋กœ ๋„˜์–ด๊ฐ€๊ธฐ")
next_page = st.button(label=f"๏ธโœ… {st.session_state.selected_dataset}์œผ๋กœ ์š”์•ฝํ•˜๊ธฐ" if st.session_state.selected_dataset else "โ›” ๋ฐ์ดํ„ฐ๋ฅผ ์„ ํƒํ•ด์•ผ ์š”์•ฝ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.",
use_container_width=True,
type="secondary",
disabled=st.session_state.selected_dataset is None,
)
if next_page:
switch_to_summarization()
st.divider()