Saltar al contenido principal

Tabular en Python: Una guía completa

Utiliza la biblioteca tabular de Python para crear tablas bien formateadas. Conoce sus funciones avanzadas y las opciones para personalizar el aspecto de la mesa.
Actualizado 16 ene 2025  · 8 min de lectura

Los datos tabulares son datos estructurados en filas y columnas. Estructurar los datos de este modo es importante porque facilita la interpretación de los resultados. En Python, podemos crear datos tabulares de aspecto agradable utilizando la biblioteca tabulate. La biblioteca tabulate es fácil de usar y se ha convertido en una de las herramientas preferidas de los científicos de datos, analistas y desarrolladores que necesitan crear tablas con un formato limpio para su presentación.

Si estás empezando como analista o científico de datos, te recomiendo que sigas el curso Introducción a Python de DataCamp para aprender los fundamentos del lenguaje Python, incluidas las funciones y los paquetes. 

¿Qué es Tabular en Python?

El paquete tabulate de Python crea tablas bien formateadas a partir de diversas fuentes de datos. Los principales casos de uso del paquete tabulate son los siguientes:

  • Visualización de datos en interfaces de línea de comandos (CLI): El paquete tabulate ayuda a los desarrolladores a mostrar tablas formateadas de forma legible en el terminal o la consola.

  • Cuadernos Jupyter: La función tabulate() ayuda a mostrar tablas agradables en los Cuadernos Jupyter.

  • Aplicaciones Web: El paquete tabulate ayuda a los desarrolladores a mostrar tablas en formato HTML en aplicaciones web.

Algunas de las principales características de la biblioteca tabulate son las siguientes:

  • Múltiples formatos de salida: El paquete tabulate permite la salida de tablas en distintos formatos, como texto plano, HTML, LaTeX y otros; por tanto, los usuarios pueden elegir según el caso de uso.

  • Alineación automática de columnas: tabulate Alinea automáticamente las columnas de distintos tipos de datos, como cadenas, números y otros.

  • Manejo de diversas estructuras de datos: tabulate Maneja diccionarios, listas, pandas DataFrames y matrices NumPy.

Cómo instalar Tabulate en Python

Puedes utilizar el gestor de paquetes pip para instalar el paquete tabulate en Python. En tu terminal o símbolo del sistema, escribe y ejecuta el siguiente mensaje:

pip install tabulate

Si quieres instalar el paquete para un único usuario sin necesidad de privilegios administrativos, puedes utilizar la bandera –user como se muestra a continuación.

pip install --user tabulate

Puedes crear un nuevo entorno virtual utilizando el siguiente comando cuando ejecutes scripts en un entorno virtual.

python -m venv myenv

Para activar el entorno virtual, ejecuta los siguientes comandos:

Para Windows:

myenv\Scripts\activate

Para macOS/Linux:

source myenv/bin/activate

Si la instalación se realiza correctamente, puedes ejecutar el siguiente código en tu editor de Python para comprobar el número de versión del paquete tabulate en el entorno Python.

import tabulate
print(tabulate.__version__)

Si descubres que tus herramientas necesitan actualizarse, lee nuestra guía: Cómo actualizar Python y Pip en Windows, MacOS y Linux.

Usos básicos de Python Tabular

Los ejemplos siguientes muestran el uso básico del paquete tabulate para crear tablas formateadas.

Crear tablas sencillas

La forma más sencilla de utilizar la función tabulate() para crear tablas es proporcionando una lista de listas. Los argumentos clave de la sintaxis de la función tabulate() son los siguientes:

  • tabular_data: Los datos a formatear, como lista de listas o diccionarios.

  • headers: Las cabeceras que deben figurar en la tabla. Si se omite, la tabla no tendrá cabeceras.

  • tablefmt: El formato de salida de la tabla, como “plain”, “pipe”, “grid”, o “html”.

El siguiente ejemplo muestra cómo utilizar la función tabulate() para crear una tabla con formato de cuadrícula.

# Import the tabulate module
from tabulate import tabulate

# Sample data: list of lists
data = [
    ["Alice", 24, "Engineer"],
    ["Bob", 30, "Data Scientist"],
    ["Charlie", 28, "Teacher"]
]

# Creating a table with headers and a grid format
table = tabulate(
    data, 
    headers=["Name", "Age", "Profession"], 
    tablefmt="grid"
)

print(table)

Tabla con formato de rejilla utilizando Python tabulate.

Tabla con formato de rejilla utilizando Python tabulate. Imagen del autor.

Echa un vistazo a nuestro curso de Fundamentos de Py thon para aprender más sobre listas y otras estructuras de datos en Python.

Visualizar datos de pandas DataFrames

El DataFrame de pandas es una estructura de datos común en Python que maneja datos tabulares. Utilizando la biblioteca tabulate, puedes formatear los datos tabulares en diferentes formatos según las especificaciones requeridas. El siguiente ejemplo muestra cómo mostrar una tabla utilizando el formato ‘pipe’.

# Import libraries
import pandas as pd
from tabulate import tabulate

# Sample DataFrame
df = pd.DataFrame({
    "Name": ["Alice", "Bob", "Charlie"],
    "Age": [24, 30, 28],
    "Profession": ["Engineer", "Data Scientist", "Teacher"]
})

# Displaying the DataFrame as a formatted table
table = tabulate(
    df, 
    headers='keys', 
    tablefmt='pipe'
)

print(table)

Salida de tabla utilizando el estilo de formato pipa en la función tabular de Python.

Salida de tabla utilizando el estilo de formato de tubería en la función tabulate() de Python. Imagen del autor.

Utilizando el mismo DataFrame, df, puedes mostrar la salida de la tabla en formato de cuadrícula.

print(tabulate(df, headers='keys', tablefmt='grid'))

Salida de tabla utilizando el estilo de formato de cuadrícula en la función tabular de Python.

Salida de tabla utilizando el estilo de formato de cuadrícula en la función tabulate() de Python. Imagen del autor.

Funciones avanzadas de Python Tabulate

La biblioteca tabulate ofrece funciones avanzadas que te permiten personalizar el aspecto de tablas complejas. Hablemos de algunas de estas características.

Personalizar el aspecto de la mesa

La biblioteca tabulate ofrece distintas formas de personalizar el aspecto de las tablas, como ajustar la alineación, establecer el ancho de las columnas y utilizar distintos formatos de tabla. A continuación se indican algunas de las principales opciones de formato.

  • numalign: Controla la alineación de las columnas numéricas. Los valores aceptables son "left", "center", y "right".

  • stralign: Controla la alineación de las columnas de cadena. Los valores aceptables son "left", "center", y "right".

  • colalign: Permite la alineación específica de columnas individuales proporcionando una lista de opciones de alineación.

El ejemplo siguiente muestra la aplicación de estas opciones de formato.

from tabulate import tabulate

# Sample data: list of lists
data = [
    ["Alice", 24, 1200.50],
    ["Bob", 30, 3500.75],
    ["Charlie", 28, 2500.00]
]

# Customizing table appearance
table = tabulate(
    data,
    headers=["Name", "Age", "Salary"],
    tablefmt="fancy_grid",
    numalign="right",
    stralign="center",
    colalign=("center", "center", "right")
)

print(table)

Salida de tabla personalizada utilizando Python tabulate.

Salida de tabla personalizada utilizando Python tabulate. Imagen del autor.

Manejo de celdas multilínea

La biblioteca tabulate también te permite manejar datos de texto que superen el ancho de columna típico. El argumento maxcolwidths especifica la anchura máxima de cada celda de la tabla de salida para gestionar el ajuste del texto dentro de las celdas. Esta funcionalidad te permite mostrar información larga de forma más legible.

En el ejemplo siguiente, el maxcolwidths se establece en 30 caracteres para envolver los datos de texto en varias líneas si supera el número de caracteres especificado.

# Import tabulate library
from tabulate import tabulate

# Sample text data
data = [
    ["Alice", "Lorem ipsum dolor sit amet, consectetur adipiscing elit."],
    ["Bob", "Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."],
    ["Charlie", "Ut enim ad minim veniam, quis nostrud exercitation ullamco."]
]

# Creating a table with multiline cells
table = tabulate(
    data,
    headers=["Name", "Description"],
    tablefmt="grid",
    maxcolwidths=[None, 30]  # Set maximum width for the Description column
)

print(table)

Salida de tabla que maneja varias líneas utilizando tabular de Python.

Salida de tabla que maneja varias líneas utilizando tabular de Python. Imagen del autor.

Utilizar la utilidad de línea de comandos

La biblioteca tabulate proporciona una utilidad de línea de comandos para ayudarte a visualizar tablas directamente desde la línea de comandos o el terminal. Esta utilidad de línea de comandos te permite generar las tablas sin escribir código Python adicional.

Supongamos que tienes un archivo CSV llamado data.csv. Utilizarás el siguiente símbolo del sistema para generar una tabla utilizando tabular.

cat data.csv | tabulate -d , -f grid

Dónde:

  • cat data.csv lee el contenido del archivo CSV.

  • -d , especifica el delimitador (coma para CSV).

  • -f grid establece el formato de salida en el estilo grid.

Ejemplos prácticos y casos de uso

En esta sección, exploraremos los distintos casos de uso de la biblioteca tabulate para visualizar tablas en Python.

Visualizar datos de ventas

Supongamos que tenemos los siguientes datos de ventas.

# Sample sales data
sales_data = [
    ["Q1", 15000, 12000, 13000],
    ["Q2", 17000, 16000, 14500],
    ["Q3", 18000, 15000, 16000],
    ["Q4", 20000, 21000, 19000]
]

headers = ["Quarter", "Product A", "Product B", "Product C"]

Puedes mostrar los datos en una tabla utilizando el formato fancy_grid.

# Import tabulate library
from tabulate import tabulate

# Displaying sales data using the 'fancy_grid' format
table_fancy = tabulate(sales_data, headers=headers, tablefmt="fancy_grid")

print(table_fancy)

Salida de tabla utilizando el formato fancy_grid en Python tabulate.

Salida de tabla utilizando el formato fancy_grid en Python tabulate. Imagen del autor.

También puedes mostrar los datos en formato HTML ajustando tablefmt a html.

# Displaying sales data using the 'html' format
table_html = tabulate(sales_data, headers=headers, tablefmt="HTML")

print(table_html)

Salida:

<table>
<thead>
<tr><th>Quarter  </th><th style="text-align: right;">  Product A</th><th style="text-align: right;">  Product B</th><th style="text-align: right;">  Product C</th></tr>
</thead>
<tbody>
<tr><td>Q1       </td><td style="text-align: right;">      15000</td><td style="text-align: right;">      12000</td><td style="text-align: right;">      13000</td></tr>
<tr><td>Q2       </td><td style="text-align: right;">      17000</td><td style="text-align: right;">      16000</td><td style="text-align: right;">      14500</td></tr>
<tr><td>Q3       </td><td style="text-align: right;">      18000</td><td style="text-align: right;">      15000</td><td style="text-align: right;">      16000</td></tr>
<tr><td>Q4       </td><td style="text-align: right;">      20000</td><td style="text-align: right;">      21000</td><td style="text-align: right;">      19000</td></tr>
</tbody>
</table>

La salida de tabla HTML es útil en integraciones web si quieres incrustar la salida de tabla en sitios web. También puedes personalizar aún más la salida de la tabla HTML utilizando CSS para que tenga un aspecto más atractivo para el usuario.

Integración con Jupyter Notebooks

La biblioteca tabulate puede integrarse fácilmente con los Cuadernos Jupyter para facilitar la presentación de los datos. El siguiente ejemplo muestra cómo crear un DataFrame de muestra en un Jupyter Notebook y mostrarlo en una tabla con formato de cuadrícula.

# Import required library
import pandas as pd
from tabulate import tabulate

# Sample student exam scores DataFrame
exam_scores_df = pd.DataFrame({
    "Student": ["Alice", "Bob", "Charlie", "David"],
    "Math": [85, 90, 78, 92],
    "Science": [88, 76, 95, 85],
    "English": [90, 88, 84, 91]
})

# Displaying the DataFrame as a formatted table using 'grid' format
table_jupyter = tabulate(exam_scores_df, headers='keys', tablefmt='grid')

print(table_jupyter)

Salida en forma de tabla de los datos visualizados utilizando Python tabulate integrado con Jupyter Notebook.

Salida de tablas utilizando Python tabulate integrado con un Jupyter Notebook. Imagen del autor.

La ventaja de utilizar la biblioteca tabulate en un entorno Jupyter es que mejora la legibilidad y la comparación de datos, especialmente en tareas de análisis de datos.

Conclusión

La biblioteca tabulate es importante para crear tablas bien formateadas en Python. Como has visto, también ofrece flexibilidad para su uso en distintos entornos, como Cuadernos Jupyter, líneas de comandos y aplicaciones web, incluyendo opciones para la salida, como HTML. 

Si quieres avanzar en tus conocimientos de Python, te recomiendo encarecidamente que consultes el curso de programación en Python de DataCamp. También te animo a que consultes nuestros itinerarios profesionales de Desarrollador de Python y Analista de Datos con Python, que te ayudarán a adquirir las habilidades necesarias para convertirte en un analista de datos competente. Además, si te gusta trabajar con tablas en Python, prueba la Introducción a las Bases de Datos en Python de DataCamp para aprender más sobre el uso de SQL con Python. Por último, haz clic a continuación para convertirte en un científico del aprendizaje automático en Python, si te sientes preparado para dar ese apasionante paso.

Perfeccionamiento en IA para principiantes

Aprende los fundamentos de la IA y ChatGPT desde cero.
Aprende IA gratis

Allan Ouko's photo
Author
Allan Ouko
LinkedIn
Creo artículos que simplifican la ciencia de los datos y la analítica, haciéndolos fáciles de entender y accesibles.

Preguntas frecuentes

¿Qué es la biblioteca tabular en Python?

La biblioteca tabulate crea tablas bien formateadas a partir de diferentes estructuras de datos en Python.

¿Cómo instalo la biblioteca tabular?

Para instalar la biblioteca tabulate, utiliza el comando pip install tabulate.

¿Qué formatos de salida admite la biblioteca tabular de Python?

La biblioteca tabulate admite salidas de tablas en texto plano, HTML, cuadrícula, LaTeX, Markdown y otros formatos.

¿Qué estructuras de datos admite la biblioteca tabular?

La biblioteca tabulate puede utilizarse para crear salidas de tablas a partir de las siguientes estructuras de datos: Lista de listas, lista de diccionarios, diccionario de iterables, matrices NumPy bidimensionales y Pandas DataFrames.

¿Se puede utilizar la biblioteca tabular directamente en la línea de comandos?

Tabulate proporciona una utilidad de línea de comandos para generar tablas directamente desde el terminal sin escribir todo el código Python.

Temas

Aprende con DataCamp

Certificación disponible

curso

Caja de herramientas Python

4 hr
287.1K
Sigue desarrollando tus habilidades modernas de Ciencia de Datos aprendiendo sobre iteradores y comprensión de listas.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow