parent
16dbffe49f
commit
ba319d6243
@ -0,0 +1,2 @@
|
||||
[client]
|
||||
showSidebarNavigation = false
|
Binary file not shown.
@ -0,0 +1,49 @@
|
||||
import streamlit as st
|
||||
from io import StringIO
|
||||
import pandas as pd
|
||||
|
||||
def statistics(df):
|
||||
nan_counts = df.isnull().sum(axis=1).sum()
|
||||
|
||||
st.write("*Number of columns*:", len(df.columns))
|
||||
st.write("*Number of rows*:", len(df.index))
|
||||
|
||||
st.write("*Nan Counts*: ", nan_counts)
|
||||
st.write(df.isna().sum())
|
||||
|
||||
def display_df_first_and_lasts_lines(df):
|
||||
fl = df.head(10)
|
||||
ll = df.tail(10)
|
||||
concat = pd.concat([fl, ll])
|
||||
st.dataframe(concat)
|
||||
|
||||
def nav_bar():
|
||||
st.page_link("./home.py", label="Import", icon="⬆️", help=None)
|
||||
st.page_link("pages/clean.py", label="Clean", icon="🧼", help=None)
|
||||
st.page_link("pages/visualize.py", label="Visualize", icon="👁️", help=None)
|
||||
st.page_link("pages/prediction.py", label="Predict", icon="🔮", help=None)
|
||||
st.page_link("pages/evaluate.py", label="Evaluate", icon=None, help=None)
|
||||
|
||||
def clean_dataframe(line):
|
||||
# Call to function to clean data
|
||||
line.empty()
|
||||
line.write("Dataframe has been cleaned")
|
||||
|
||||
def main():
|
||||
nav_bar()
|
||||
st.write("# Pow: Your data analyser")
|
||||
|
||||
uploaded_file = st.file_uploader("Choose a file")
|
||||
if uploaded_file is not None:
|
||||
df = pd.read_csv(uploaded_file)
|
||||
st.session_state.orig_df = df
|
||||
st.write("## Dataframe (10 first/last lines)")
|
||||
display_df_first_and_lasts_lines(df)
|
||||
|
||||
st.write("## Statistics")
|
||||
statistics(df)
|
||||
|
||||
if st.button("Next"):
|
||||
st.switch_page("pages/clean.py")
|
||||
|
||||
main()
|
@ -0,0 +1,18 @@
|
||||
import streamlit as st
|
||||
|
||||
st.write("# 🧼 Data cleaning")
|
||||
|
||||
st.write("## Missing data")
|
||||
rm_empty_rows_or_cols = st.checkbox("Remove empty rows or columns", True)
|
||||
|
||||
st.write("#### Replace missing values")
|
||||
replace_methods = ["Mean","Median","Mode","KNN","Regression"]
|
||||
replace_method = st.radio('Choose an option:', replace_methods)
|
||||
|
||||
st.write("## Normalize data")
|
||||
normalize_methods = ["Min-Max","Z-Score","Another One"]
|
||||
normalize_method = st.radio('Choose an option:', normalize_methods)
|
||||
|
||||
if st.button("Clean dataset"):
|
||||
# TODO: Actual processing
|
||||
st.write("TODO")
|
@ -0,0 +1,23 @@
|
||||
import streamlit as st
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
df = st.session_state.orig_df
|
||||
df_columns = df.columns.tolist()
|
||||
|
||||
st.write("# 📊 Visualization")
|
||||
|
||||
st.write("## Histograms")
|
||||
hist_tabs = st.tabs(df_columns)
|
||||
|
||||
for idx, tab in enumerate(hist_tabs):
|
||||
tab.write("##### "+df_columns[idx])
|
||||
tab.bar_chart(df[df_columns[idx]])
|
||||
|
||||
st.write("## Box & Whisker")
|
||||
baw_tabs = st.tabs(df_columns)
|
||||
|
||||
for idx, tab in enumerate(baw_tabs):
|
||||
tab.write("##### "+df_columns[idx])
|
||||
fig, ax = plt.subplots()
|
||||
df[df_columns[idx]].plot(kind='box')
|
||||
st.pyplot(fig)
|
Loading…
Reference in new issue