GMARTINEZMILLA commited on
Commit
dd337a5
·
1 Parent(s): ef48243

feat: updated website

Browse files
Files changed (1) hide show
  1. app.py +69 -60
app.py CHANGED
@@ -609,66 +609,75 @@ elif page == "Customer Analysis":
609
 
610
  st.plotly_chart(fig_comparison, use_container_width=True)
611
 
612
- # Gráfico de ventas anuales
613
- ventas_clientes['codigo_cliente'] = ventas_clientes['codigo_cliente'].astype(str).str.strip()
614
-
615
- sales_columns = ['VENTA_2021', 'VENTA_2022', 'VENTA_2023']
616
- if all(col in ventas_clientes.columns for col in sales_columns):
617
- customer_sales_data = ventas_clientes[ventas_clientes['codigo_cliente'] == customer_code]
618
-
619
- if not customer_sales_data.empty:
620
- customer_sales = customer_sales_data[sales_columns].values[0]
621
- years = ['2021', '2022', '2023']
622
-
623
- # Add the 2024 actual and predicted data
624
- if 'ventas_predichas' in results.columns and 'ventas_reales' in results.columns:
625
- actual_sales_2024 = results[results['fecha_mes'].dt.year == 2024]['ventas_reales'].sum()
626
- predicted_sales_2024 = results[results['fecha_mes'].dt.year == 2024]['ventas_predichas'].sum()
627
-
628
- months_available = 9
629
- actual_sales_2024_annual = (actual_sales_2024 / months_available) * 12
630
-
631
- sales_values = list(customer_sales) + [actual_sales_2024_annual]
632
- predicted_values = list(customer_sales) + [predicted_sales_2024]
633
-
634
- years.append('2024')
635
-
636
- fig_sales_bar = go.Figure()
637
- fig_sales_bar.add_trace(go.Bar(
638
- x=years[:3],
639
- y=sales_values[:3],
640
- name="Historical Sales",
641
- marker_color='blue'
642
- ))
643
-
644
- fig_sales_bar.add_trace(go.Bar(
645
- x=[years[3]],
646
- y=[sales_values[3]],
647
- name="2024 Actual Sales (Annualized)",
648
- marker_color='green'
649
- ))
650
-
651
- fig_sales_bar.add_trace(go.Bar(
652
- x=[years[3]],
653
- y=[predicted_values[3]],
654
- name="2024 Predicted Sales",
655
- marker_color='orange'
656
- ))
657
-
658
- fig_sales_bar.update_layout(
659
- title=f"Sales Over the Years for Customer {customer_code}",
660
- xaxis_title="Year",
661
- yaxis_title="Sales (€)",
662
- barmode='group',
663
- height=600,
664
- legend_title_text="Sales Type",
665
- hovermode="x unified"
666
- )
667
-
668
- st.plotly_chart(fig_sales_bar, use_container_width=True)
669
-
670
- else:
671
- st.warning(f"No predicted or actual data found for customer {customer_code} for 2024.")
 
 
 
 
 
 
 
 
 
672
 
673
 
674
 
 
609
 
610
  st.plotly_chart(fig_comparison, use_container_width=True)
611
 
612
+ # Gráfico de ventas anuales
613
+ ventas_clientes['codigo_cliente'] = ventas_clientes['codigo_cliente'].astype(str).str.strip()
614
+
615
+ sales_columns = ['VENTA_2021', 'VENTA_2022', 'VENTA_2023']
616
+ if all(col in ventas_clientes.columns for col in sales_columns):
617
+ customer_sales_data = ventas_clientes[ventas_clientes['codigo_cliente'] == customer_code]
618
+
619
+ if not customer_sales_data.empty:
620
+ customer_sales = customer_sales_data[sales_columns].values[0]
621
+ years = ['2021', '2022', '2023']
622
+
623
+ # Convert 'fecha_mes' to datetime format if it's not already
624
+ if not pd.api.types.is_datetime64_any_dtype(results['fecha_mes']):
625
+ results['fecha_mes'] = pd.to_datetime(results['fecha_mes'], errors='coerce')
626
+
627
+ # Add the 2024 actual and predicted data
628
+ if 'ventas_predichas' in results.columns and 'ventas_reales' in results.columns:
629
+ actual_sales_2024 = results[results['fecha_mes'].dt.year == 2024]['ventas_reales'].sum()
630
+ predicted_sales_2024 = results[results['fecha_mes'].dt.year == 2024]['ventas_predichas'].sum()
631
+
632
+ # Assuming only 9 months of actual data are available, annualize the sales
633
+ months_available = 9
634
+ actual_sales_2024_annual = (actual_sales_2024 / months_available) * 12
635
+
636
+ # Prepare data for the bar chart
637
+ sales_values = list(customer_sales) + [actual_sales_2024_annual]
638
+ predicted_values = list(customer_sales) + [predicted_sales_2024]
639
+
640
+ years.append('2024')
641
+
642
+ # Create the bar chart for historical and 2024 data
643
+ fig_sales_bar = go.Figure()
644
+ fig_sales_bar.add_trace(go.Bar(
645
+ x=years[:3],
646
+ y=sales_values[:3],
647
+ name="Historical Sales",
648
+ marker_color='blue'
649
+ ))
650
+
651
+ fig_sales_bar.add_trace(go.Bar(
652
+ x=[years[3]],
653
+ y=[sales_values[3]],
654
+ name="2024 Actual Sales (Annualized)",
655
+ marker_color='green'
656
+ ))
657
+
658
+ fig_sales_bar.add_trace(go.Bar(
659
+ x=[years[3]],
660
+ y=[predicted_values[3]],
661
+ name="2024 Predicted Sales",
662
+ marker_color='orange'
663
+ ))
664
+
665
+ # Customize layout
666
+ fig_sales_bar.update_layout(
667
+ title=f"Sales Over the Years for Customer {customer_code}",
668
+ xaxis_title="Year",
669
+ yaxis_title="Sales (€)",
670
+ barmode='group',
671
+ height=600,
672
+ legend_title_text="Sales Type",
673
+ hovermode="x unified"
674
+ )
675
+
676
+ # Display the chart
677
+ st.plotly_chart(fig_sales_bar, use_container_width=True)
678
+
679
+ else:
680
+ st.warning(f"No predicted or actual data found for customer {customer_code} for 2024.")
681
 
682
 
683