CoolFace
Apppublic

OctaMonroy/2demo

sourceHugging Faceapache-2.0updated 2y agoView on Hugging Face
1likes
app.py96 linesDownload Raw Back to root
1import streamlit as st2import pandas as pd3import numpy as np4 5st.title("App con pandas")6 7st.write("Esta app es de prueba solo para subir archivos y utilizar :red[pandas] en streamlit y huggingface.")8 9uploaded_file = st.file_uploader("Descarga tu archivo de excel en este espacio: ")10 11if uploaded_file:12    st.write(":green[Bien hecho, se ha subido tu archivo correctamente!!]")13 14    df = pd.read_csv(uploaded_file)15 16    st.write("Esto es un :blue[write] de *df.mean()*.")17    st.write(df.mean())18 19    st.write("Esto es un :blue[dataframe] de *df*.")20    st.dataframe(df)21 22    st.write("Esto es un :blue[data_editor] de *df* y se está guardando como *df_edit*")23    df_edit = st.data_editor(df)24 25    st.write("Esto es un :blue[write] de *df_edit.mean()*.")26    st.write(df_edit.mean())27 28    st.write("Esto es un :blue[write] de *df.std() ")29    st.write(df.std())30 31else:32    st.write(":red[No has subido tu archivo.]")33 34 35import gradio as gr36import pandas as pd37import matplotlib.pyplot as plt38 39# Función para generar el histograma40def generar_histograma(archivo, columna, bins=10):41    # Leer el archivo en un DataFrame de pandas42    df = pd.read_csv(archivo.name)43    44    # Comprobar si la columna seleccionada existe en el DataFrame45    if columna not in df.columns:46        return "La columna seleccionada no existe en el archivo."47 48    # Generar el histograma49    plt.figure(figsize=(10, 6))50    plt.hist(df[columna], bins=bins, color='skyblue', edgecolor='black')51    plt.title(f'Histograma de {columna}')52    plt.xlabel(columna)53    plt.ylabel('Frecuencia')54 55    # Guardar el histograma en un archivo temporal56    plt.savefig('histograma.png')57    plt.close()58 59    return 'histograma.png'60 61# Crear la interfaz con Gradio62def interfaz():63    # Obtener las columnas disponibles del archivo para selección64    def obtener_columnas(archivo):65        df = pd.read_csv(archivo.name)66        return gr.Dropdown.update(choices=list(df.columns))67    68    with gr.Blocks() as demo:69        # Cargar archivo CSV70        archivo = gr.File(label="Sube un archivo CSV")71        # Seleccionar columna72        columna = gr.Dropdown(label="Selecciona la columna para el histograma")73        # Seleccionar número de bins74        bins = gr.Slider(1, 100, value=10, label="Número de bins")75        # Botón para generar el histograma76        boton = gr.Button("Generar histograma")77        # Imagen para mostrar el histograma78        imagen = gr.Image(label="Histograma")79 80        archivo.change(obtener_columnas, inputs=archivo, outputs=columna)81        boton.click(generar_histograma, inputs=[archivo, columna, bins], outputs=imagen)82 83    return demo84 85# Ejecutar la interfaz86if __name__ == "__main__":87    demo = interfaz()88    demo.launch()89 90#No enseñó esto profeee :(91 92 93 94 95 96