Saltar al contenido principal

Cómo ejecutar Python en Tableau con TabPy: Guía completa

Sigue estos pasos para empezar a ejecutar scripts de Python en Tableau utilizando TabPy. Esto te permitirá crear pipelines de modelado y análisis para tus visualizaciones de Tableau.
Actualizado 17 jun 2025  · 9 min de lectura

Tableau es una herramienta de visualización de datos muy popular entre los profesionales de los datos y una herramienta habitual solicitada durante la contratación. Python es un lenguaje de programación versátil muy utilizado en la ciencia de datos. La integración de Python en Tableau permite a los usuarios crear modelos sofisticados, realizar cálculos complejos y ampliar las funciones nativas de Tableau. 

Esto es especialmente útil para los analistas de datos, los científicos de datos y los profesionales de la inteligencia empresarial que buscan aprovechar el modelado estadístico, el machine learning y las técnicas de procesamiento de datos directamente en sus cuadros de mando.

Este artículo es un tutorial práctico para integrar Python en Tableau. Aprenderás a configurar tu entorno, ejecutar scripts de Python, explorar casos de uso de análisis avanzados y solucionar problemas comunes. Si quieres iniciarte en Tableau, sigue este curso de introducción a Tableau.

Comprender la integración

La integración de Python con Tableau es posible a través de un servicio externo, la extensión analítica llamada TabPy (Tableau Python Server). Esta extensión permite a los usuarios de Tableau ejecutar scripts de Python en su entorno de Tableau. 

Aunque puede que tengas experiencia en el uso de Python para crear archivos y luego visualizarlos en Tableau, como en este tutorial Visualizar datos con Python y Tableau, esta conexión con TabPy permite una integración más fluida entre los datos de Tableau y tus scripts de Python.

El papel de TabPy

TabPy actúa como puente entre Tableau y Python. Funciona según un modelo cliente-servidor, en el que Tableau (cliente) envía scripts a TabPy (servidor), que los ejecuta en un entorno Python y devuelve los resultados.

Cómo funciona

  1. Tableau Desktop o Server envía un script utilizando campos calculados.
  2. TabPy ejecuta el código Python.
  3. Los resultados se envían a Tableau para su representación en visualizaciones.

Diagrama que muestra la conexión entre Tableau, TabPy y Python

Diagrama que muestra la conexión entre Tableau, TabPy y el entorno Python generado mediante eraser.io

Ventajas de usar Python con Tableau

Aunque Tableau es extraordinariamente potente, a veces sus campos calculados pueden parecer torpes o ineficaces cuando se trata de tareas analíticas complejas. La integración con Python ofrece varias ventajas sobre las capacidades nativas de Tableau y da a los usuarios más libertad para procesar sus datos. 

Por ejemplo, puedes incluir los siguientes casos de uso con Python:

  • Modelización avanzada: Utiliza bibliotecas como scikit-learn, statsmodels, y xgboost para la regresión, la agrupación y la clasificación.
  • Integración de la API: Obtén datos en tiempo real utilizando API como Twitter, Reddit o servicios empresariales personalizados.
  • Procesamiento dinámico: Ejecuta cálculos que se adapten en función de las entradas del usuario o de los datos cambiantes. Puedes utilizar paquetes como pandas o numpy para aumentar realmente la potencia analítica de tu panel de Tableau.

Configurar TabPy

Para empezar a utilizar Python en Tableau, tendrás que instalar y configurar TabPy. Este paso es bastante sencillo. El proceso principal es asegurarte de que tienes Python y Tableau instalados en tu ordenador.

Requisitos del sistema e instalación

Requisitos previos:

  • Python 3.7+ (asegúrate de que tienes pip)
  • Tableau Desktop o Tableau Server (se recomienda 2020.1 o posterior)

Instalación paso a paso:

1. Instala Python. Sigue las instrucciones de tu sistema operativo para instalar Python.

2. Crea un entorno virtual:

python3 -m venv tableau-env

3. Instala TabPy (asegúrate de activar tu entorno). También puedes instalar otros paquetes como pandas, numpy, sklearn, y más en este momento.

pip install tabpy

4. Inicia TabPy:

tabpy

Configurar TabPy

Para personalizar TabPy, edita su archivo de configuración. Estas personalizaciones te permiten cambiar cosas como el puerto en el que TabPy escucha la información y el protocolo de transferencia que utiliza. Para más información sobre los ajustes de configuración, sigue Guía de configuración de TabPy.

Ejemplo de archivo de configuración (tabpy.conf)

Este es el aspecto que podría tener un archivo de configuración para tabpy.

[TABPY]
TABPY_PORT = 9004
TABPY_TRANSFER_PROTOCOL = http

Consejos sobre redes y seguridad

Dado que TabPy se basa en el uso de una conexión de servidor similar a Internet para tus recursos locales, es mejor que sigas algunos consejos de red y seguridad: 

  • Asegúrate de elegir un puerto que esté abierto en tu cortafuegos, pero que no escuche conexiones externas. 
  • Configura un proxy inverso como NGINX con SSL para tener una comunicación segura. 
  • Si se ejecuta en Tableau Server, asegúrate de que TabPy es accesible desde la misma red

Para más detalles sobre cómo empezar con TabPy, sigue este tutorial para empezar con TabPy.

Ejecutar Python en Tableau

Después de configurar TabPy, ya puedes integrar Python directamente en los cuadros de mando de Tableau. Primero debes activar las conexiones de extensión en Tableau. Abre tu Tableau Desktop, ve a Configuración y rendimiento, Gestionar la conexión de extensiones analíticas y selecciona TabPy. Después, configúralo según los ajustes de tu archivo de configuración de TabPy.

Pantalla Administrar conexión de extensiones de análisis en Tableau

Pantalla Gestionar conexión de extensiones de análisis en Tableau (ayuda.tableau.com)

Métodos de integración de guiones

Hay tres formas principales de ejecutar scripts de Python en Tableau: cálculos de scripts en línea dentro de un campo calculado, preprocesamiento con extensiones de Tableau y puntos finales del modelo.

1. Cálculos de script en línea

Utiliza las funciones de Tableau SCRIPT_REAL, SCRIPT_INT, SCRIPT_STR, o SCRIPT_BOOL. Cada una de estas funciones pasa datos al servidor TabPy directamente sin ejecutar un script externo. Puedes escribir Python directamente en estos scripts.

Ejemplo: Normalización de la puntuación Z

SCRIPT_REAL(
  "import scipy.stats as stats
   return stats.zscore(_arg1)",
  SUM([Sales])
)

El ejemplo anterior te permite importar el paquete stats desde scipyy devolver la puntuación Z de la columna SUM([Sales]) en tu Tableau.

2. Preprocesamiento con extensiones de tablas

Utiliza las extensiones de Tableau para realizar el preprocesamiento con Python fuera de Tableau, y luego importa los resultados.

  • Preprocesa los datos con Pandas/Numpy.
  • Guarda los resultados como un CSV o un punto final de la API.
  • Carga los datos procesados en Tableau.

Estas Extensiones se activan desde la página Hojas de tu cuaderno de trabajo de Tableau. Con estas extensiones, introduces la totalidad de tu guión utilizando la Extensión TabPy. Esto ejecuta el script en todo el conjunto de datos, lo que te permite preprocesar todos los datos a la vez, en lugar de hacerlo por filas. Esto suele generar una tabla independiente como salida.

Función de ampliación de tablas disponible en la parte inferior de la página Hojas 

Función de ampliación de tablas disponible en la parte inferior de la página Hojas. (De la documentación de Tableau)

3. Puntos finales del modelo desplegado

El último método es uno de los más potentes. Alojamos un modelo utilizando el servidor TabPy para ejecutar un script. A continuación, invocamos este script en Tableau cuando nos interese ejecutar ese modelo en un conjunto de datos concreto.

Ejemplo: Despliega el modelo en TabPy

El primer paso es crear un archivo que será desplegado por TabPy. Después de ejecutar tu servidor TabPy (siguiendo los pasos anteriores), puedes utilizarlo para ejecutar tu script Python. Una vez desplegado ese script de Python, lo llamaremos en Tableau utilizando SCRIPT_REAL.

from tabpy.tabpy_tools.client import Client
import pickle

def predict_sales(input_features):
    model = pickle.load(open(model.pkl, ‘rb’)) # This assumes you have a saved model
    return model.predict(input_features)

client = Client(‘http://localhost:9004’)

client.deploy('predict_sales', predict_sales, 'Predict sales using linear model', override=True)

Llamada al script de Tableau:

SCRIPT_REAL("return tabpy.query(‘predict_sales’, _arg1)[‘response’]", SUM[Feature1])

Técnicas de optimización del rendimiento

Al igual que al ejecutar scripts de Python fuera de Tableau, debemos tener cuidado con el rendimiento. Hay que tener en cuenta algunas consideraciones especiales al ejecutar datos en Tableau.

  1. Procesamiento por lotes: Minimiza el número de llamadas procesando los datos en trozos. A menudo resulta útil procesar la totalidad de tu conjunto de datos de una vez, en lugar de cuando lo llama Tableau.
  2. Almacenamiento en caché de los resultados: Almacena en caché los resultados estáticos utilizando la configuración de almacenamiento en caché de Tableau.
  3. Vectorización: Utiliza operaciones NumPy/Pandas en lugar de bucles para una ejecución más rápida. A menudo vectorizan los cálculos matemáticos, haciéndolos mucho más eficaces.

Si utilizas Tableau Server, puedes optimizar aún más utilizando la agrupación de conexiones. La agrupación de conexiones en general, es la idea de mantener conexiones persistentes con fuentes de datos para minimizar la sobrecarga. 

Puedes hacer lo mismo con tus fuentes de datos y TabPy para evitar que Tableau "vuelva a abrir" la conexión con TabPy cada vez que ejecutes un script o un nuevo cálculo.

Casos de uso analítico avanzado

Ahora que lo básico está cubierto, puedes implementar análisis altamente personalizados. Estos métodos implican crear scripts más avanzados que interactúen con tu panel de control de formas interesantes.

Análisis predictivo en tiempo real

Un gran modelo es desplegar modelos de series temporales (por ejemplo, ARIMA, Prophet) que se actualizan con la entrada del usuario, como en esta guía sobre el despliegue de funciones y Prophet con TabPy

Una vez que hayas construido tu modelo, puedes empaquetarlo en un script que pueda ser desplegado por TabPy. A continuación, conectamos este modelo a nuestro Tableau utilizando la misma función SCRIPT_REAL para llamar a nuestro modelo desplegado.

Caso práctico: Previsión de ventas

  • Construye y entrena un modelo Prophet en Python.
  • Despliega el modelo en TabPy utilizando las ventas históricas como característica
  • Actualiza las predicciones sobre la cifra de ventas a medida que cambia el filtro del panel de control.

Ahora, si alguien cambiara filtros como la ubicación, la hora o el producto, Tableau generará nuevas previsiones en tiempo real con estos nuevos filtros.

Seguridad y Gobernanza

Dado que abrimos nuestras conexiones a TabPy, es vital que sigamos los protocolos de seguridad y gobernanza adecuados. 

Protocolos de autenticación

TabPy ofrece diversos protocolos de autenticación para ayudar a los usuarios a mantenerse seguros. Se admiten y pueden configurarse los siguientes:

  • Autenticación básica (nombre de usuario/contraseña)
  • Autenticación basada en certificados
  • OAuth2 con gestión segura de tokens (para uso empresarial avanzado)

La mejor práctica es utilizar siempre HTTPS y tokens seguros para las implantaciones de producción.

Medidas de protección de datos

Al conectar Tableau y TabPy, debemos asegurarnos de que seguimos una gobernanza adecuada de protección de datos. Esto incluye garantizar que los datos fluyen por los canales de conexión adecuados y no pueden utilizar otros puertos, y que los datos están encriptados en todo momento mientras se mueven. Éstas son algunas de las mejores prácticas a seguir:

  • Cifrar la comunicación entre Tableau y TabPy.
  • Utiliza reglas de cortafuegos y controles de acceso.
  • Activa el registro de auditoría en TabPy para el cumplimiento. Actualiza regularmente los paquetes de Python para parchear vulnerabilidades.

En última instancia, si tu organización está obligada a cumplir determinadas normativas, asegúrate de que sigues sus mejores prácticas. Asegúrate de que se cumple la GDPR y la CCPR anonimizando y tokenizando la IIP antes de enviarla a TabPy. Además, utiliza un almacenamiento seguro para los resultados intermedios de Python para minimizar las fugas.

Solución de problemas y depuración

Los problemas son inevitables, pero la mayoría pueden resolverse rápidamente.

Problemas comunes y soluciones

Edición

Resolución

Tableau no puede conectarse a TabPy

Comprueba el cortafuegos, confirma el puerto (9004) y verifica que TabPy se está ejecutando

El script devuelve valores NULL

Valida los tipos de entrada y comprueba los registros de errores de Python

Rendimiento lento

Optimiza los datos enviados a Python, reduce la frecuencia de las llamadas, utiliza la caché

Si alguna vez tienes problemas con tu código, sigue algunos de estos pasos de depuración (que sirven para cualquier script):

  • Utiliza print() o el registro en los scripts (los registros de TabPy los muestran).
  • Prueba los scripts de Python fuera de Tableau utilizando Jupyter.
  • Comprueba los registros de Tableau en Mi repositorio de Tableau/Registros.

Conclusión

La integración de Python con Tableau desbloquea la potencia analítica avanzada directamente en tus cuadros de mando visuales. Con TabPy, puedes

  • Ejecuta cálculos complejos
  • Despliega e interactúa con modelos ML
  • Amplía significativamente las capacidades nativas de Tableau

Tanto si estás ejecutando modelos estadísticos, procesando datos de texto o visualizando predicciones, Python aporta una nueva dimensión de inteligencia a los paneles de Tableau.

Siguiendo los pasos descritos en esta guía, podrás aprovechar Python para obtener análisis más perspicaces, flexibles e interactivos. Para más información sobre Tableau y sus capacidades, consulta las siguientes guías:

Ejecutar Python en Tableau Preguntas frecuentes

¿Puedo utilizar Python con Tableau Public?

No. Tableau Public no admite servicios externos como TabPy. La integración con Python está disponible en Tableau Desktop (Edición Profesional) y Tableau Server.

¿Es TabPy seguro para entornos de producción?

TabPy puede asegurarse para producción utilizando HTTPS, restricciones de cortafuegos, protocolos de autenticación (básico, basado en cert, OAuth2) y proxies inversos como NGINX. Sin embargo, se necesitan configuraciones adicionales más allá de la configuración por defecto.

¿Cómo gestiona Tableau el rendimiento de los scripts de Python en los cuadros de mando?

Tableau envía datos a TabPy y espera la respuesta, lo que puede provocar retrasos si los scripts no están optimizados. Para mejorar el rendimiento, utiliza técnicas como la vectorización, el almacenamiento en caché, el procesamiento por lotes y la minimización de los datos enviados.

¿Puedo utilizar entornos virtuales con TabPy?

Sí. Puedes ejecutar TabPy dentro de un entorno virtual Python, lo que ayuda a aislar dependencias y evitar conflictos. Activa el entorno antes de iniciar TabPy.

¿Puede TabPy devolver estructuras de datos complejas como JSON o diccionarios?

No. TabPy debe devolver una lista plana o un arreglo NumPy que Tableau pueda interpretar. Las estructuras de datos complejas, como diccionarios o JSON, deben preprocesarse en una lista antes de ser devueltas.


Tim Lu's photo
Author
Tim Lu
LinkedIn

Soy un científico de datos con experiencia en análisis espacial, aprendizaje automático y canalización de datos. He trabajado con GCP, Hadoop, Hive, Snowflake, Airflow y otros procesos de ciencia/ingeniería de datos.

Temas

Los mejores cursos de DataCamp

Curso

Python Toolbox

4 h
298.7K
Continue to build your modern Data Science skills by learning about iterators and list comprehensions.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow
Relacionado

blog

Tutorial: cómo instalar Python en macOS y Windows

Aprende a instalar Python en tu equipo personal con este tutorial paso a paso. Tanto si eres usuario de Windows como de macOS, descubre varios métodos para iniciarte en Python en tu equipo.
Richie Cotton's photo

Richie Cotton

14 min

Tutorial

Tutorial de visualización de datos con Python y Tableau

Aprende a utilizar Python para ampliar las funciones de visualización de datos de Tableau.
Abid Ali Awan's photo

Abid Ali Awan

15 min

Tutorial

Tutorial sobre la ejecución de scripts de Python en Power BI

Descubre las distintas formas de utilizar Python para optimizar el análisis, la visualización y el modelado de datos en Power BI.
Joleen Bothma's photo

Joleen Bothma

9 min

Tutorial

Tutorial de Excel en Python: La guía definitiva

Aprende a leer e importar archivos Excel en Python, a escribir datos en estas hojas de cálculo y a encontrar los mejores paquetes para hacerlo.
Natassha Selvaraj's photo

Natassha Selvaraj

15 min

Tutorial

Tutorial sobre cómo ejecutar scripts en Python

Aprenda cómo puede ejecutar un script Python desde la línea de comandos, y también cómo puede proporcionar argumentos de línea de comandos a su script.
Aditya Sharma's photo

Aditya Sharma

10 min

Tutorial

Tutorial sobre cómo ejecutar consultas SQL en Python y R

Aprenda formas fáciles y eficaces de ejecutar consultas SQL en Python y R para el análisis de datos y la gestión de bases de datos.
Abid Ali Awan's photo

Abid Ali Awan

13 min

Ver másVer más