RahulParajuli12's picture
added app functionality
9ee9649
import streamlit as st
import pandas as pd
import os
import json
import csv
# import sys
# sys.path.append('scripts/')
from visualization import st_data_visualization
from feature_select import st_feature_selection
from classification import st_classification
from data_clean import handle_missing_value
def try_read_df(f, f_name):
filename, file_extension = os.path.splitext(f_name)
try:
if file_extension.startswith(".xls"):
return pd.read_excel(f)
elif file_extension.endswith(".csv"):
return pd.read_csv(f)
elif file_extension.endswith('.json'):
return pd.read_json(f)
else:
st.write("File Type did not match")
except Exception as e:
st.write(e)
def main():
st.write("This is a Data Science App for Data Visualization, Data Cleaning, Feature Selection and Classification")
st.subheader("How to use the app")
#procedure to upload and use other functions
st.write("- Use left side bar that says browse, to upload the files.")
st.write("- Upload a CSV/Excel file and then choose the functionality you want to use.")
st.write("- Use side bar to navigate to other functionalities.")
st.write("- The file will be deleted after the session is closed.")
st.write("The app is still in development phase.")
st.write("This App is built by Rahul Parajuli.")
st.subheader("Start by uploading and see the results below - ")
st.write("There is also a sample file 'Titanic Dataset' in the program so go ahead and press on app functionality and choose data visualization")
# SideBar Settings
st.sidebar.title("Automatic Data Science App")
st.sidebar.info(
"The Byte Factory"
)
# app functionalities
primary_function = st.sidebar.selectbox(
'Choose App Functionality', ["Upload CSV File", "Data Visualization", \
"Data Cleanup", "Feature Selection", "Classification"])
if primary_function == "Upload CSV File":
uploaded_file = st.sidebar.file_uploader("Upload a CSV/Excel file", accept_multiple_files=False,\
type=("csv", "xls", "json"))
if uploaded_file is not None:
data = try_read_df(uploaded_file, uploaded_file.name)
st.write("Here are the first ten rows of the File")
st.table(data.head(10))
file_details = {"FileName":uploaded_file.name,"FileType":uploaded_file.type,\
"FileSize":uploaded_file.size}
st.sidebar.write(file_details)
with open(os.path.join("temp_data", "test.csv"), "wb") as f:
f.write(uploaded_file.getbuffer())
if primary_function == "Data Visualization":
st_data_visualization()
if primary_function == "Data Cleanup":
handle_missing_value()
if primary_function == "Feature Selection":
st_feature_selection()
if primary_function == "Classification":
st_classification()
# data_visualization = st.sidebar.button("Visualize Data")
# data_cleanup = st.sidebar.button("Clean Data")
# feature_selection = st.sidebar.button("Feature Selection")
# classification = st.sidebar.button("Classification")
# if data_visualization:
# st_data_visualization()
# if data_cleanup:
# handle_missing_value()
# if feature_selection:
# st_feature_selection()
# if classification:
# st_classification()
if __name__ == '__main__':
main()