IvanStudent commited on
Commit
2ac50b5
·
1 Parent(s): 96492e2

Guardar mis cambios locales

Browse files
Files changed (1) hide show
  1. app.py +11 -7
app.py CHANGED
@@ -24,15 +24,21 @@ def forecast_sales(uploaded_file, start_date, end_date, forecast_period=30):
24
  df['Date'] = pd.to_datetime(df['Date'])
25
  df = df.rename(columns={'Date': 'ds', 'Sale': 'y'})
26
 
27
- # Filtrar los datos según el rango de fechas seleccionado por el usuario
28
- df_filtered = df[(df['ds'] >= pd.to_datetime(start_date)) & (df['ds'] <= pd.to_datetime(end_date))]
 
 
 
 
 
 
29
 
30
  arima_model, error = load_model()
31
  if arima_model is None:
32
  return error, None
33
 
34
  try:
35
- forecast_index = pd.date_range(start=pd.to_datetime(end_date), periods=forecast_period + 1, freq='D')[1:]
36
  forecast = arima_model.get_forecast(steps=forecast_period)
37
  forecast_df = pd.DataFrame({'Date': forecast_index, 'Sales Forecast': forecast.predicted_mean})
38
  except Exception as e:
@@ -40,9 +46,7 @@ def forecast_sales(uploaded_file, start_date, end_date, forecast_period=30):
40
 
41
  try:
42
  fig, ax = plt.subplots(figsize=(10, 6))
43
- # Dibujar las ventas actuales en rojo
44
  ax.plot(df_filtered['ds'], df_filtered['y'], label='Actual Sales', color='red')
45
- # Dibujar la predicción en azul
46
  ax.plot(forecast_df['Date'], forecast_df['Sales Forecast'], label='Sales Forecast', color='blue', linestyle='--')
47
  ax.set_xlabel('Date')
48
  ax.set_ylabel('Sales')
@@ -56,8 +60,8 @@ def setup_interface():
56
  with gr.Blocks() as demo:
57
  gr.Markdown("## MLCast v1.1 - Intelligent Sales Forecasting System")
58
  file_input = gr.File(label="Upload your store data here (must contain Date and Sales)")
59
- start_date_input = gr.inputs.Date(label="Start Date")
60
- end_date_input = gr.inputs.Date(label="End Date")
61
  forecast_button = gr.Button("Forecast Sales")
62
  output_text = gr.Textbox(visible=True)
63
  output_plot = gr.Plot()
 
24
  df['Date'] = pd.to_datetime(df['Date'])
25
  df = df.rename(columns={'Date': 'ds', 'Sale': 'y'})
26
 
27
+ # Filtrar los datos según el rango de fechas introducido por el usuario
28
+ try:
29
+ start = pd.to_datetime(start_date)
30
+ end = pd.to_datetime(end_date)
31
+ except ValueError:
32
+ return "Please enter valid dates in YYYY-MM-DD format.", None
33
+
34
+ df_filtered = df[(df['ds'] >= start) & (df['ds'] <= end)]
35
 
36
  arima_model, error = load_model()
37
  if arima_model is None:
38
  return error, None
39
 
40
  try:
41
+ forecast_index = pd.date_range(start=end, periods=forecast_period + 1, freq='D')[1:]
42
  forecast = arima_model.get_forecast(steps=forecast_period)
43
  forecast_df = pd.DataFrame({'Date': forecast_index, 'Sales Forecast': forecast.predicted_mean})
44
  except Exception as e:
 
46
 
47
  try:
48
  fig, ax = plt.subplots(figsize=(10, 6))
 
49
  ax.plot(df_filtered['ds'], df_filtered['y'], label='Actual Sales', color='red')
 
50
  ax.plot(forecast_df['Date'], forecast_df['Sales Forecast'], label='Sales Forecast', color='blue', linestyle='--')
51
  ax.set_xlabel('Date')
52
  ax.set_ylabel('Sales')
 
60
  with gr.Blocks() as demo:
61
  gr.Markdown("## MLCast v1.1 - Intelligent Sales Forecasting System")
62
  file_input = gr.File(label="Upload your store data here (must contain Date and Sales)")
63
+ start_date_input = gr.Textbox(label="Start Date (YYYY-MM-DD)", placeholder="Enter Start Date")
64
+ end_date_input = gr.Textbox(label="End Date (YYYY-MM-DD)", placeholder="Enter End Date")
65
  forecast_button = gr.Button("Forecast Sales")
66
  output_text = gr.Textbox(visible=True)
67
  output_plot = gr.Plot()