import streamlit as st import seaborn as sns import matplotlib.pyplot as plt import pandas as pd # Load data def load_data(): df = pd.read_csv("processed_data.csv") # Replace with your dataset return df # Create Streamlit app def app(): # Title for the app st.title("Pizza Sales Data Analysis Dashboard") df = load_data() df = pd.DataFrame(df) """""""""""" # Calculate key metrics # Write a code snippet to calculate key metrics from the pizza orders dataframe, including the # total number of unique orders, total revenue generated, the most popular pizza size, the most # frequent pizza category, total pizzas sold total_orders = df['order_id'].drop_duplicates() #function which can calculate the number of unique values total_revenue = df['total_price'].sum() #function which can sum the column most_popular_size = df['pizza_size'].value_counts().idxmax() #function which can get the maximum value most_frequent_category = df['pizza_category'].value_counts().idxmax() #function which can count of value of each product total_pizzas_sold = df['quantity'].sum() """""""""""" # Sidebar with key metrics # Write a code snippet to display key metrics in the sidebar of a Streamlit application. # Show the total number of orders, total revenue (formatted as currency), the most popular # pizza size, the most popular pizza category, and the total number of pizzas sold # using the st.sidebar.metric function. st.sidebar.header("Key Metrics") st.sidebar.metric("Total Orders", total_orders) st.sidebar.metric("Total Revenue", f"${total_revenue:,.2f}") st.sidebar.metric("Most Popular Size", most_popular_size) st.sidebar.metric("Most Popular Category", most_frequent_category) st.sidebar.metric("Total Pizzas Sold", total_pizzas_sold) """"""""""""" # Provide the details of the plots here plots = [ {"title": "Top Selling Pizzas (by Quantity)", "x": "pizza_name", "y": "quantity", "top": 5}, #Write the appropriiate column as per the title given {"title": "Quantity of Pizzas Sold by Category and Time of the Day", "x": "order_time", "hue": "pizza_category"}, #Write the appropriiate column as per the title given {"title": "Quantity of Pizzas Sold by Size and Time of the Day", "x": "order_time", "hue": "pizza_size"}, #Write the appropriiate column as per the title given {"title": "Monthly Revenue Trends by Pizza Category", "x": "order_date", "y": "total_price", "hue": "pizza_category", "estimator": "sum", "marker": "o"}, #Write the appropriiate column as per the title given ] for plot in plots: st.header(plot["title"]) fig, ax = plt.subplots() if "Top Selling" in plot["title"]: sns.countplot(data=df, x=plot["x"], y=plot["y"],top=plot["top"]) if "Category" in plot["title"]: sns.countplot(data=df, x=plot["x"], hue=plot["hue"]) if "Size" in plot["title"]: sns.countplot(data=df, x=plot["x"], hue=plot["hue"]) if "Revenue" in plot["title"]: sns.countplot(data=df, x=plot["x"], y=plot["y"],ax=plot["top"], hue=plot["hue"], estimator=plot["estimator"], marker=plot["marker"]) else: ax.set_ylabel("quantity") ax.legend(bbox_to_anchor=(1,1)) st.pyplot(fig) plt.show() if __name__ == "__main__": app()