import streamlit as st import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import base64 import pickle st.set_option('deprecation.showPyplotGlobalUse', False) @st.cache_data def load_data(dataset): df = pd.read_csv(dataset) return df st.sidebar.image('photo_house.jpg',width=300) def main(): st.markdown("

Streamlit Housing App

",unsafe_allow_html=True) st.markdown("

Housing study in Cameroon

",unsafe_allow_html=True) menu = ['Home','Data Analysis','Data Visualisation','Machine Learning'] choice = st.sidebar.selectbox('Select Menu',menu) if choice == 'Home': left,middle,right = st.columns((2,3,2)) with middle: st.image('photo_house.jpg',width=300) st.write('This is an app that will analyse value of house with some python tools that can optimize decisions') st.subheader('house value Informations') st.write('') if choice == 'Data Analysis': st.subheader('Dataset') data = load_data('housing.csv') st.write(data.head(5)) if st.checkbox('Summary'): st.write(data.describe().head()) elif st.checkbox('Correlation'): plt.figure(figsize=(15,15)) st.write(sns.heatmap(data.corr(),annot=True)) st.pyplot() if choice == 'Data Visualisation': if st.checkbox('Pairplot'): fig = plt.figure(figsize=(5,5)) data = load_data('housing.csv') sns.pairplot(data=data) st.pyplot(fig) if choice == 'Machine Learning': tab1, tab2, tab3 = st.tabs([":clipboard: Data",":bar_chart: Visualisation", ":mask: :smile: Prediction"]) uploaded_files = st.sidebar.file_uploader('Upload your input CSV file',type=['csv']) if uploaded_files: dfs = load_data(uploaded_files) with tab1: st.subheader('Loaded dataset') st.write(dfs) with tab2: model = pickle.load(open('model.pkl', 'rb')) prediction = model.predict() st.subheader('prediction') st.write(prediction) def filedownload(df): csv = df.to_csv(index=False) b64 = base64.b64encode(csv.encode()).decode() # strings <-> bytes conversions href = f'Download CSV File' return href button = st.button('Download') if button : st.markdown(filedownload(ndf), unsafe_allow_html=True) # If the file was imported as a module, the code would not run. if __name__ == '__main__': main()