prueba2 / app.py
josegoji's picture
Update app.py
f5ddda7 verified
import re
import pandas as pd
import pickle
import numpy as np
from sklearn.preprocessing import MinMaxScaler
import joblib
from io import StringIO
import gradio as gr
import os
import sys
from json import load
from skforecast.utils import load_forecaster
from skforecast.preprocessing import RollingFeatures
from sklearn.preprocessing import MinMaxScaler
from sklearn.preprocessing import FunctionTransformer
from sklearn.pipeline import Pipeline
from exog_creation import *
import contextlib
import warnings
# Funci贸n para cargar el archivo CSV y mostrar las primeras 5 filas
def load_csv(input_file):
try:
# Leer el archivo CSV
df = pd.read_csv(input_file)
# Verificar si el DataFrame est谩 vac铆o
if df.empty:
return "El archivo subido est谩 vac铆o o no tiene datos v谩lidos."
# Retornar las primeras 5 filas como tabla HTML
return df
except Exception as e:
return f"Error al procesar el archivo: {e}"
def set_datetime_index(df):
df['datetime'] = pd.to_datetime(df['datetime'])
df = df.set_index('datetime')
df = df.asfreq('h')
return df
def load_model(name):
current_dir = os.getcwd()
ROOT_PATH = os.path.dirname(current_dir)
sys.path.insert(1, ROOT_PATH)
import root
model = load_forecaster(root.DIR_DATA_ANALYTICS + name,
verbose=True)
return model
def load_pipeline(name):
with open('pipeline.pkl', 'rb') as file:
pipeline = pickle.load(file)
return pipeline
def flujo(input_file):
datos = load_csv("archivo.csv")
datos_dict = datos.to_dict(orient="records")
return datos_dict
# Crear la interfaz con Gradio
interface = gr.Interface(
fn=flujo, # Funci贸n principal
inputs=gr.File(label="Sube tu archivo CSV"), # Entrada de archivo
outputs="json", # Salida como tabla HTML
title="Visualizaci贸n de CSV",
description="Sube un archivo CSV y perdice la geenracion de energia."
)
interface.launch()