profitboost / app.py
7sugiwa's picture
Upload 4 files
2998f77 verified
# app.py
import streamlit as st
import pandas as pd
import numpy as np
import joblib
from datetime import datetime
# Assuming the necessary EDA functions are defined in eda.py and imported here
from eda import (average_sales_by_region, average_sales_and_profit_over_time,
segment_vs_region_distribution, sales_vs_profit_across_segments,
category_composition_for_profit_and_sales)
from prediction import make_prediction
# In your model training script and your Streamlit app script (app.py)
from transformers import UnitPriceTransformer, KMeansAndLabelTransformer, DynamicOneHotEncoder
# Load the dataset for EDA
@st.cache_data
def load_data():
return pd.read_csv('superstore_clean.csv')
df = load_data()
# Sidebar for navigation
st.sidebar.title("Navigation")
selection = st.sidebar.radio("Go to", ["Home", "EDA", "Make a Prediction"])
if selection == "Home":
st.title("Welcome to the Superstore Sales Dashboard")
elif selection == "EDA":
st.title("Exploratory Data Analysis (EDA)")
# Display EDA plots directly here or call a function that does
average_sales_by_region(df)
average_sales_and_profit_over_time(df)
segment_vs_region_distribution(df)
sales_vs_profit_across_segments(df)
category_composition_for_profit_and_sales(df)
elif selection == "Make a Prediction":
st.title("Make a Sales Prediction")
with st.form("input_form"):
# Simplify input fields based on what's actually used
sales = st.number_input('Sales', value=100.0, format="%.2f")
quantity = st.number_input('Quantity', value=2, format="%d")
discount = st.number_input('Discount', value=0.0, format="%.2f")
sub_category = st.selectbox('Sub-Category', ['Bookcases', 'Chairs', 'Labels', 'Tables', 'Storage', 'Furnishings', 'Art', 'Phones', 'Binders', 'Appliances', 'Paper', 'Accessories', 'Envelopes', 'Fasteners', 'Supplies', 'Machines', 'Copiers'])
submitted = st.form_submit_button("Predict")
if submitted:
input_features = pd.DataFrame([[sales, quantity, discount, sub_category]], columns=['sales', 'quantity', 'discount', 'sub_category'])
predicted_profit = make_prediction(input_features)
st.write(f'Predicted Profit: {predicted_profit:.2f}')