Spaces:
Runtime error
Runtime error
File size: 2,969 Bytes
45e5a75 03c2c4b 45e5a75 eba54ac ea4879e a1949ef 5b2776b c99eebf a1949ef 45e5a75 a1949ef 5b2776b 3652aa7 21c7f3c 3652aa7 5a3a6a7 3652aa7 21c7f3c ee43876 a1949ef 45e5a75 423f589 45e5a75 1fa4bfa 03c2c4b 45e5a75 5a3a6a7 45e5a75 a1949ef 45e5a75 a1949ef 45e5a75 423f589 45e5a75 a1949ef 45e5a75 423f589 45e5a75 a1949ef 45e5a75 f3aa1c5 45e5a75 f3aa1c5 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
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
# Page config is set once with icon title and display style. Wide mode since we want screen real estate for wide CSV files
st.set_page_config(page_icon="📝", page_title="📝CSV Data Analyzer📊", layout="wide")
# Style
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,
)
# Title Bar with Images and Icons
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=128,)
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=128,)
# Upload
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")
#try:
shows = pd.read_csv(uploaded_file)
#except:
# print(sys.exc_info()[2])
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()
# DisplayGrid
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,
)
# Filters
df = pd.DataFrame(response["selected_rows"])
st.subheader("Filtered data will appear below 📊 ")
st.text("")
st.table(df)
st.text("")
# Download
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",) |