akazmi commited on
Commit
1562dda
·
verified ·
1 Parent(s): 887e6fa

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -8
app.py CHANGED
@@ -56,6 +56,9 @@ if uploaded_file:
56
  # Clean whitespace and ensure consistent case in 'Customer Name' and 'Product Name'
57
  df['Customer Name'] = df['Customer Name'].str.strip().str.lower()
58
  df['Product Name'] = df['Product Name'].str.strip().str.lower()
 
 
 
59
 
60
  # Sidebar Filters
61
  st.sidebar.header("Filter Options")
@@ -63,6 +66,9 @@ if uploaded_file:
63
  # Text Input for Customer and Product
64
  customer_query = st.sidebar.text_input('Enter Customer Name (partial or full):').strip().lower()
65
  product_query = st.sidebar.text_input('Enter Product Name (partial or full):').strip().lower()
 
 
 
66
 
67
  # Date Range Selection
68
  start_date = st.sidebar.date_input('Start Date:', df['Date'].min())
@@ -82,19 +88,24 @@ if uploaded_file:
82
  if product_query:
83
  filtered_df = filtered_df[filtered_df['Product Name'].str.contains(product_query, case=False, na=False)]
84
 
 
 
 
 
 
 
 
 
 
 
 
 
85
  # Display Filtered Data
86
  st.write(f"Filtered Data: {len(filtered_df)} records found.")
87
  st.dataframe(filtered_df)
88
 
89
- # Key Metrics: High Margin Product and Highest Sales Month
90
  if not filtered_df.empty:
91
- st.subheader("Key Metrics")
92
- high_margin_product = filtered_df.loc[filtered_df['Margin Amount'].idxmax(), 'Product Name']
93
- highest_sales_month = filtered_df.loc[filtered_df['Net Sales Value'].idxmax(), 'Month']
94
- st.metric("High Margin Product", high_margin_product)
95
- st.metric("Highest Sales Month", highest_sales_month)
96
-
97
- # Visualizations
98
  st.subheader("Sales Trend Over Time")
99
  trend = filtered_df.groupby('Date')['Net Sales Value'].sum().reset_index()
100
  fig_trend = px.line(trend, x='Date', y='Net Sales Value', title='Sales Over Time')
 
56
  # Clean whitespace and ensure consistent case in 'Customer Name' and 'Product Name'
57
  df['Customer Name'] = df['Customer Name'].str.strip().str.lower()
58
  df['Product Name'] = df['Product Name'].str.strip().str.lower()
59
+ df['City'] = df['City'].str.strip().str.lower()
60
+ df['State'] = df['State'].str.strip().str.lower()
61
+ df['Country'] = df['Country'].str.strip().str.lower()
62
 
63
  # Sidebar Filters
64
  st.sidebar.header("Filter Options")
 
66
  # Text Input for Customer and Product
67
  customer_query = st.sidebar.text_input('Enter Customer Name (partial or full):').strip().lower()
68
  product_query = st.sidebar.text_input('Enter Product Name (partial or full):').strip().lower()
69
+ city_query = st.sidebar.text_input('Enter City (partial or full):').strip().lower()
70
+ state_query = st.sidebar.text_input('Enter State (partial or full):').strip().lower()
71
+ country_query = st.sidebar.text_input('Enter Country (partial or full):').strip().lower()
72
 
73
  # Date Range Selection
74
  start_date = st.sidebar.date_input('Start Date:', df['Date'].min())
 
88
  if product_query:
89
  filtered_df = filtered_df[filtered_df['Product Name'].str.contains(product_query, case=False, na=False)]
90
 
91
+ # Filter Data by City
92
+ if city_query:
93
+ filtered_df = filtered_df[filtered_df['City'].str.contains(city_query, case=False, na=False)]
94
+
95
+ # Filter Data by State
96
+ if state_query:
97
+ filtered_df = filtered_df[filtered_df['State'].str.contains(state_query, case=False, na=False)]
98
+
99
+ # Filter Data by Country
100
+ if country_query:
101
+ filtered_df = filtered_df[filtered_df['Country'].str.contains(country_query, case=False, na=False)]
102
+
103
  # Display Filtered Data
104
  st.write(f"Filtered Data: {len(filtered_df)} records found.")
105
  st.dataframe(filtered_df)
106
 
107
+ # Visualizations
108
  if not filtered_df.empty:
 
 
 
 
 
 
 
109
  st.subheader("Sales Trend Over Time")
110
  trend = filtered_df.groupby('Date')['Net Sales Value'].sum().reset_index()
111
  fig_trend = px.line(trend, x='Date', y='Net Sales Value', title='Sales Over Time')