load_forcasting / app.py
TANVEERMAKHDOOM's picture
Update app.py
7faf6c0 verified
import gradio as gr
import pandas as pd
from prophet import Prophet
import matplotlib.pyplot as plt
def forecast_energy(file):
# Read CSV
df = pd.read_csv(file)
# Rename columns to fit Prophet's expected format
df.columns = ['ds', 'y']
# Convert date column to datetime
df['ds'] = pd.to_datetime(df['ds'])
# Build and train model
model = Prophet()
model.fit(df)
# Forecast next 14 days
future = model.make_future_dataframe(periods=14)
forecast = model.predict(future)
# Plot forecast
fig = model.plot(forecast)
plt.title("Energy Load Forecast")
return fig
# Gradio interface
demo = gr.Interface(
fn=forecast_energy,
inputs=gr.File(label="Upload Energy Load CSV", file_types=[".csv"]),
outputs=gr.Plot(label="Forecasted Load"),
title="Smart Energy Load Forecasting",
description="Upload a CSV file with columns 'ds' (date) and 'y' (energy load). This app predicts the next 2 weeks of load."
)
if __name__ == "__main__":
demo.launch()