File size: 2,725 Bytes
45e5a75
 
 
 
 
eba54ac
ea4879e
a1949ef
 
45e5a75
 
 
 
 
 
 
 
 
 
 
 
a1949ef
 
 
3652aa7
 
f3aa1c5
3652aa7
ee43876
3652aa7
f3aa1c5
ee43876
a1949ef
45e5a75
 
423f589
45e5a75
 
 
 
 
 
83675dc
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
import streamlit as st
import pandas as pd
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

# 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,
    )
    
# Page and Title Bar with Images and Icons
st.set_page_config(page_icon="📝", page_title="📝CSV Data Analyzer📊")
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=80,)
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=80,)
    
# 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")
        shows = pd.read_csv(uploaded_file)
        uploaded_file.seek(0)
        file_container.write(shows)
    else:
        st.info(f"""⬆️Upload a 📝.CSV file.  Examples: [Card Data](https://huggingface.co/datasets/awacke1/Carddata.csv)  [Mindful Stories](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",)