Aprender Streamlit Datos, tablas y conexiones

Módulo del curso de Streamlit

Streamlit
Streamlit
Módulo del curso
Actualizado: 18/04/2026

Módulo: Datos, tablas y conexiones

Este módulo forma parte del curso de Streamlit. .

La visualización y edición de datos estructurados es uno de los puntos fuertes de Streamlit. El módulo cubre desde la presentación de DataFrames de Pandas hasta la conexión a bases de datos SQL reales mediante la API unificada st.connection.

st.dataframe: tabla interactiva

st.dataframe renderiza un DataFrame de Pandas como una tabla HTML interactiva con ordenación, redimensionamiento de columnas y scroll:

import streamlit as st
import pandas as pd

df = pd.read_csv("ventas.csv")
st.dataframe(
    df,
    use_container_width=True,
    column_config={
        "precio": st.column_config.NumberColumn("Precio (€)", format="€%.2f"),
        "fecha": st.column_config.DateColumn("Fecha", format="DD/MM/YYYY"),
        "activo": st.column_config.CheckboxColumn("Activo"),
        "web": st.column_config.LinkColumn("URL")
    },
    hide_index=True
)

st.data_editor: edición in-place

st.data_editor permite al usuario editar celdas directamente en la tabla y devuelve el DataFrame modificado:

df_editado = st.data_editor(
    df,
    num_rows="dynamic",  # Permite añadir/eliminar filas
    column_config={"precio": st.column_config.NumberColumn(min_value=0)}
)
st.write("Datos actualizados:", df_editado)

Métricas, tablas estáticas y JSON

col1, col2 = st.columns(2)
col1.metric("Ingresos totales", "€ 45.230", delta="€ +3.210 vs mes anterior")
col2.metric("Tasa de error", "0,32%", delta="-0,05%", delta_color="inverse")

st.table(df.head(5))  # Tabla estática sin interactividad
st.json({"modelo": "RandomForest", "accuracy": 0.94, "features": ["edad", "salario"]})

st.connection: conexión a datos

La API st.connection proporciona una interfaz unificada para conectar con distintas fuentes de datos. Las credenciales se gestionan de forma segura mediante st.secrets:

# .streamlit/secrets.toml
# [connections.mydb]
# type = "sql"
# url = "postgresql://user:pass@host:5432/db"

conn = st.connection("mydb", type="sql")
df_result = conn.query("SELECT * FROM clientes WHERE activo = true", ttl=600)
st.dataframe(df_result)

También está disponible la conexión a Snowflake, Google Sheets, S3 y otras fuentes mediante conectores oficiales de la comunidad. st.secrets gestiona las credenciales como variables de entorno, evitando que aparezcan en el código fuente.

Explora más sobre Streamlit

Descubre más recursos de Streamlit

Alan Sastre - Autor del curso

Alan Sastre

Ingeniero de Software y formador, CEO en CertiDevs

Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, Streamlit es una de sus áreas de expertise. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan se dedica a crear contenido educativo de calidad para desarrolladores de todos los niveles.