Streamlit desde cero: cómo crear una app para explorar y visualizar datos desde un CSV

Published: (January 3, 2026 at 03:48 AM EST)
2 min read
Source: Dev.to

Source: Dev.to

Introducción

En este artículo se usa Streamlit desde cero para construir una aplicación interactiva que permite cargar, explorar y visualizar datos desde un archivo CSV de manera local. El objetivo es crear rápidamente una app para análisis exploratorio de datos (EDA) utilizando Python y librerías relacionadas.

Repositorio del proyecto:

Arquitectura Propuesta

La arquitectura se basa en los siguientes componentes:

  • Python: lenguaje de alto nivel y versátil.
  • Pandas: manipulación y análisis de datos con estructuras como DataFrames.
  • Streamlit: framework de código abierto para crear aplicaciones interactivas con pocas líneas de código.
  • GitHub: alojamiento y colaboración del código fuente.

Tecnologías Utilizadas

  • streamlit
  • pandas
  • numpy
  • matplotlib
  • seaborn
  • plotly
  • scikit-learn

Implementación Paso a Paso

1. Crear y activar un entorno virtual

# Crear ambiente
python -m venv env-local-streamlit

# Activar ambiente (Linux/macOS)
source env-local-streamlit/bin/activate

# Activar ambiente (Windows)
.\env-local-streamlit\Scripts\activate

2. Instalar dependencias

# Listar paquetes antes de instalar (opcional)
pip list

# Instalar desde requirements.txt
pip install -r requirements.txt

# Verificar instalación
pip list

3. Estructura básica de la aplicación Streamlit

# src/main.py
import streamlit as st
import pandas as pd
import matplotlib.pyplot as plt
import plotly.express as px

# 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 ficticio sobre diabetes.
    """
)

# Cargar datos
uploaded_file = "data/diabetes_dataset.csv"
df = pd.read_csv(uploaded_file)
st.success("✅ Archivo cargado correctamente.")

# Mostrar información básica
st.subheader("Vista previa del dataset")
st.dataframe(df.head())
st.subheader("Estadísticas descriptivas")
st.dataframe(df.describe())
st.write("Filas y columnas:", df.shape)

# Filtro de filas
n_rows = st.slider("Número de filas a mostrar", 5, 100, 5)
st.dataframe(df.head(n_rows))

# Treemap con Plotly
fig_treemap = px.treemap(
    df,
    path=["diagnosed_diabetes", "smoking_status"],
    title="Treemap jerárquico: Diabetes → Fumador"
)
st.plotly_chart(fig_treemap, use_container_width=True)

# Pie chart con Matplotlib
st.subheader("Distribución de fumadores entre diabéticos")
diab = df[df["diagnosed_diabetes"] == 1]["smoking_status"].value_counts()
fig, ax = plt.subplots(figsize=(5, 5))
ax.pie(diab, labels=diab.index, autopct="%1.1f%%")
ax.set_title("Fumadores (Diabéticos)")
st.pyplot(fig)

4. Componentes de la UI utilizados

  • st.header, st.subheader, st.title, st.write para textos y títulos.
  • st.dataframe para mostrar tablas interactivas.
  • st.slider para filtros dinámicos.
  • st.plotly_chart y st.pyplot para visualizaciones.

Ejecutar aplicación

# Desde la raíz del proyecto
streamlit run src/main.py

Asegúrate de haber activado el entorno virtual y de estar dentro de la carpeta del proyecto antes de ejecutar el comando.

Conclusiones

Streamlit simplifica la visualización y exploración de datos, permitiendo crear aplicaciones interactivas sin necesidad de infraestructura en la nube. Con pocos pasos (entorno virtual, instalación de dependencias y un script de Python) se obtiene una herramienta poderosa para EDA.

  • Documentación oficial de Streamlit:
  • Ejemplo avanzado desplegado en GCP (Cloud Run):

Recursos Recomendados

  • Python:
  • Pandas:
  • Plotly:
  • Matplotlib:
  • Seaborn:
  • Scikit‑learn:
Back to Blog

Related posts

Read more »