| | import streamlit as st |
| | import pandas as pd |
| | import traceback |
| | import sys |
| |
|
| | from st_aggrid import AgGrid |
| | from st_aggrid.grid_options_builder import GridOptionsBuilder |
| | from st_aggrid.shared import JsCode |
| | from download import download_button |
| | from st_aggrid import GridUpdateMode, DataReturnMode |
| |
|
| | |
| | st.set_page_config(page_icon="๐", page_title="๐CSV Data Analyzer๐", layout="wide") |
| |
|
| | |
| | def _max_width_(): |
| | max_width_str = f"max-width: 1800px;" |
| | st.markdown( |
| | f""" |
| | <style> |
| | .reportview-container .main .block-container{{ |
| | {max_width_str} |
| | }} |
| | </style> |
| | """, |
| | unsafe_allow_html=True, |
| | ) |
| | |
| | |
| | col1, col2, col3 = st.columns([1,6,1]) |
| | with col1: |
| | st.image("https://cdnb.artstation.com/p/assets/images/images/054/910/875/large/aaron-wacker-cyberpunk-computer-brain-design.jpg?1665656558",width=624,) |
| | with col2: |
| | st.title("๐ CSV Data Analyzer ๐") |
| | with col3: |
| | st.image("https://cdna.artstation.com/p/assets/images/images/054/910/878/large/aaron-wacker-cyberpunk-computer-devices-iot.jpg?1665656564",width=624,) |
| | |
| | |
| | c29, c30, c31 = st.columns([1, 6, 1]) |
| | with c30: |
| | uploaded_file = st.file_uploader("", key="1", help="To activate 'wide mode', go to the menu > Settings > turn on 'wide mode'",) |
| | if uploaded_file is not None: |
| | file_container = st.expander("Check your uploaded .csv") |
| | |
| | shows = pd.read_csv(uploaded_file) |
| | |
| | |
| | |
| | uploaded_file.seek(0) |
| | file_container.write(shows) |
| | else: |
| | st.info(f"""โฌ๏ธUpload a ๐.CSV file. Examples: [Chatbot](https://huggingface.co/datasets/awacke1/Carddata.csv) [Mindfulness](https://huggingface.co/datasets/awacke1/MindfulStory.csv) [Wikipedia](https://huggingface.co/datasets/awacke1/WikipediaSearch)""") |
| | st.stop() |
| |
|
| | |
| | gb = GridOptionsBuilder.from_dataframe(shows) |
| | gb.configure_default_column(enablePivot=True, enableValue=True, enableRowGroup=True) |
| | gb.configure_selection(selection_mode="multiple", use_checkbox=True) |
| | gb.configure_side_bar() |
| | gridOptions = gb.build() |
| | st.success(f"""๐ก Tip! Hold shift key when selecting rows to select multiple rows at once.""") |
| | response = AgGrid( |
| | shows, |
| | gridOptions=gridOptions, |
| | enable_enterprise_modules=True, |
| | update_mode=GridUpdateMode.MODEL_CHANGED, |
| | data_return_mode=DataReturnMode.FILTERED_AND_SORTED, |
| | fit_columns_on_grid_load=False, |
| | ) |
| |
|
| | |
| | df = pd.DataFrame(response["selected_rows"]) |
| | st.subheader("Filtered data will appear below ๐ ") |
| | st.text("") |
| | st.table(df) |
| | st.text("") |
| |
|
| | |
| | c29, c30, c31 = st.columns([1, 1, 2]) |
| | with c29: |
| | CSVButton = download_button(df,"Dataset.csv","Download CSV file",) |
| | with c30: |
| | CSVButton = download_button(df,"Dataset.txt","Download TXT file",) |