Streamlit desde cero: cómo cargar, explorar y graficar datos desde un archivo CSV
Introducción
En este artículo se usará Streamlit desde cero para construir una aplicación interactiva que permita cargar, explorar y visualizar datos desde un archivo CSV en un ambiente local.
El objetivo es crear rápidamente una aplicación para visualizar datos.
El repositorio es el siguiente: https://github.com/Mirina-Gonzales/tech-talks-with-miri
Streamlit
Es un framework de Python de código abierto que permite a profesionales del área de datos crear aplicaciones interactivas de manera simple.
- Permite agilidad para trabajar, porque la actualización de los cambios es rápida.
- Tiene una gran variedad de componentes listos para usar, por ejemplo: botones, tablas, mapas, cuadros, etc.
- Permite reducir los tiempos de carga porque cuenta con sistema de cache, que almacena los datos en memoria y permite reutilizarlos en diferentes páginas dentro de una misma aplicación.
Otras Tecnologías Utilizadas
- Python es un lenguaje de programación de alto nivel, fácil de aprender y muy versátil, utilizado ampliamente en desarrollo web, automatización, ciencia de datos, inteligencia artificial y muchas otras áreas.
- Pandas es una biblioteca de Python diseñada para manipular, limpiar y analizar datos de forma eficiente, ofreciendo estructuras como DataFrames.
- Github es una plataforma en la nube basada en el sistema de control de versiones git, que se utiliza para alojar, compartir y colaborar en proyectos de software.
Arquitectura
Esta es la arquitectura implementada: los datos están almacenados en un CSV en el ambiente local, como lenguaje de programación se usará Python con la librería de Pandas para una mejor manipulación de los datos y finalmente Streamlit será el framework que permitirá la visualización de los datos en un web local.
Análisis del código
En esta sección conoceremos algunos de los comandos que se utilizan en la demo, para mayor información en la sección de recursos está el enlace de la documentación.
- Se pueden usar
st.header,st.subheaderyst.writepara mostrar títulos y textos en la aplicación.
st.header("Probar Streamlit de manera local")
st.subheader("3. Presentación de gráficos para análisis exploratorio de datos (EDA)")
st.write("¿Cuál es la distribución de los diferentes estados de fumador dentro de los grupos de personas con y sin diabetes?")
- Configuración de la página
st.set_page_config( page_title="Streamlit local", page_icon="📁", layout="wide" )
st.title("💻 Probar Streamlit de manera local")
st.write("""
Esta aplicación demuestra cómo cargar y explorar un conjunto de datos localmente usando Streamlit.
El conjunto de datos utilizado es un conjunto de datos ficticio sobre diabetes.
""")
- Para importar los datos desde un archivo CSV local se utiliza Pandas.
uploaded_file = "data/diabetes_dataset.csv"
df = pd.read_csv(uploaded_file)
st.success(" ✅ Archivo cargado correctamente.")
- Para imprimir un dataframe usar st.dataframe
st.dataframe(df.head())
st.dataframe(df.describe())
st.write("Filas y columnas:", df.shape)
- Se puede experimentar con diferentes filtros para las visualizaciones de datos en este caso st.slider
visualizacionn = st.slider("Número de filas", 5, 100, 5)
st.dataframe(df.head(n))
- Imprimir un Treemap
fig = px.treemap(
df,
path=["diagnosed_diabetes", "smoking_status"],
title="Treemap jerárquico: Diabetes → Fumador"
)
st.plotly_chart(fig, use_container_width=True)
- Imprimir Pie Chart
st.subheader("Diabéticos")
diab = df[df["diagnosed_diabetes"] == 1]["smoking_status"].value_counts()
fig1, ax1 = plt.subplots(figsize=(5,5))
ax1.pie(diab, labels=diab.index, autopct="%1.1f%%")
ax1.set_title("Fumadores (Diabéticos)")
st.pyplot(fig1)
Implementación Paso a Paso
Preparar ambiente
Clonar o descargar el repositorio desde GitHub: https://github.com/Mirina-Gonzales/tech-talks-with-miri
Luego:
- Abrir el proyecto en un IDE como Visual Studio Code.
- Abrir una terminal.
- Navega hasta la carpeta:
demo-local-streamlit
Crear ambiente virtual
Se llamará al ambiente: _env-local-streamlit _
# Crear ambiente
python -m venv env-local-streamlit
# Activar ambiente
source env-local-streamlit/bin/activate
# Listar librerías antes de instalar
pip list
Instalar dependencias
Usando el archivo requirements.txt que se encuentra en el proyecto se instalaran los paquetes.
pip install -r requirements.txt
Validar la instalación
pip list
Ejecutar aplicación
Con el ambiente virtual activo y las dependencias instaladas, ejecutar la aplicación con el siguiente comando:
streamlit run src/main.py
Conclusiones
En este blog se creó una demo de Streamlit, utilizando como fuente de datos un archivo csv almacenado en el ambiente local. Se analizó y procesó los datos utilizando Pandas y finalmente con Streamlit se desplegó una aplicación web para visualizar los datos procesados. Experimentando lo simple que es usar el framework.
Recursos Recomendados
- Documentación oficial de Streamlit: https://docs.streamlit.io
- Repositorio de ejemplo con una aplicación más compleja desplegada en GCP usando Cloud Run: https://github.com/Mirina-Gonzales/mg-gcp-cloudrun-streamlit
Sobre la Autora
Mirina Gonzales
Data Engineer | Women Techmakers Ambassador
🔗 LinkedIn: linkedin.com/in/mirina-gonzales-rodriguez/
💻 GitHub: github.com/Mirina-Gonzales
✍️ Blog: dev.to/mirinagonzales | medium.com/@mirina.gonzales










Top comments (0)