---
schema_version: "1"
id: e1a1e95a3c26835dbedc36bdcdcc7c67ddd4f764f6bb501268697a27a6897274
title: Usar scripts de Python no seu fluxo
collection: tableau
version: current
locale: pt-br
portal_url: https://docs.salesforce.com/tableau/current/pt-br/prep/prep_scripts_TabPy.md
canonical_url: https://help.tableau.com/current/prep/pt-br/prep_scripts_TabPy.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 1347db5344ca0d8d6dfdff1fc5dc5542dfc9daba6dc901ebc1ec63d23b7d5045
description: Use Python scripts via TabPy in a Tableau Prep flow.
---
[Pular para o conteúdo principal](#main-content)

# Usar scripts de Python no seu fluxo

**Isenção de responsabilidade:** este tópico contém informações sobre um produto de terceiros. Observe que, enquanto nos esforçamos para manter as referências precisas ao conteúdo de terceiros, as informações que fornecemos aqui podem mudar sem aviso prévio, à medida que phyton muda. Para obter as informações mais atualizadas, consulte a documentação e o suporte do python.

Python é uma linguagem de programação de alto nível amplamente utilizada para programação geral. Ao enviar comandos Python para um serviço externo por meio do Tableau Prep Builder, você pode facilmente estender suas opções de preparação de dados realizando ações, como adicionar números de linha, campos de classificação, preencher campos e executar outras operações de limpeza que, de outra forma, usaria os campos calculados.

Para incluir scripts de Python no fluxo, você precisa configurar uma conexão entre Tableau e um servidor TabPy. Em seguida, você pode usar scripts de Python para aplicar funções com suporte aos dados do fluxo usando dataframe de pandas. Quando você adiciona uma etapa de script ao fluxo e especifica os detalhes da configuração, do arquivo e da função que deseja usar, os dados são transmitidos com segurança ao servidor TabPy, as expressões no script são aplicadas e os resultados são retornados como uma tabela que você pode limpar ou colocar como saída, conforme necessário.

Você pode executar fluxos que incluem etapas de script no Tableau Server, desde que tenha configurado uma conexão com o servidor TabPy. Não é possível executar fluxos com etapas de script no Tableau Cloud. Para configurar o Tableau Server, consulte [Configurar o servidor Tableau Python (TabPy) para Tableau Server](#TabServer_TabPy).

Para obter informações sobre como configurar sites no Tableau Server com extensões de análise para pastas de trabalho, consulte [Configurar conexões com extensões de análise](https://help.tableau.com/current/server/pt-br/config_r_tabpy.htm).

## Pré-requisitos

Para incluir scripts de Python no seu fluxo, conclua a configuração a seguir. Não é possível criar ou executar fluxos com etapas de script no Tableau Cloud.

1. Faça o download e instale o [Python](https://www.python.org/downloads/). Baixe e instale a versão mais atual do Python para Linux, Mac ou Windows.
2. Baixe e instale o servidor Tableau Python ([TabPy](https://github.com/tableau/TabPy)). Siga as instruções de instalação e configuração para instalar o TabPy. O Tableau Prep Builder usa o TabPy para transmitir dados do fluxo por meio de TabPy como a entrada, aplica seu script e retorna os resultados de volta ao fluxo.
3. Instale o Pandas. Execute `pip3 install pandas`. Você deve usar um dataframe de pandas em seus scripts para integrar-se ao Tableau Prep Builder.

### Configurar o servidor Tableau Python (TabPy) para Tableau Server

Se você planeja publicar, criar, editar e executar fluxos que incluem etapas de script no Tableau Server, precisará configurar uma conexão entre o seu servidor TabPy e o Tableau Server.

- **Versão 2019.3 e posterior**: é possível executar fluxos publicados que incluem etapas de script no Tableau Server.
- **Versão 2020.4.1 e posterior**: é possível criar, editar e executar fluxos que incluem etapas de script no Tableau Server.
- **Tableau Cloud**: no momento, não é possível criar ou executar fluxos com etapas de script.

1. Abra a linha de comando do TSM/shell.
2. Insira os seguintes comandos para definir o endereço do host, os valores da porta e o tempo limite da conexão:
    
    `tsm security maestro-tabpy-ssl enable --connection-type {maestro-tabpy-secure/maestro-tabpy} --tabpy-host <TabPy IP address or host name> --tabpy-port <TabPy port> --tabpy-username <TabPy username> --tabpy-password <TabPy password> --tabpy-connect-timeout-ms <TabPy connect timeout>`
    
    - Selecione `{maestro-tabpy-secure}` para habilitar uma conexão segura ou `{maestro-tabpy}` para habilitar uma conexão não segura.
    - Se você selecionar `{maestro-tabpy-secure}`, especifique o arquivo de certificado `-cf<certificate file path>` na linha de comando.
    - Especifique o `--tabpy-connect-timeout-ms <TabPy connect timeout>` em milissegundos. Por exemplo, `--tabpy-connect-timeout-ms 900000`.
3. Para desabilitar a conexão TabPy, insira o seguinte comando
    
    `tsm security maestro-tabpy-ssl disable`

## Criar seu script de Python

Ao criar o script, inclua uma função que especifique um pandas (pd.DataFrame) como um argumento da função. Isto chamará seus dados do Tableau Prep Builder. Você também precisará retornar os resultados em um pandas (pd.DataFrame) usando tipos de dados compatíveis.

Por exemplo, para adicionar codificação a um conjunto de campos em um fluxo, você pode escrever o seguinte script:

def encode(input):     
  le = preprocessing.LabelEncoder()
  Return pd.DataFrame({
    'Opportunity Number' : input\['Opportunity Number'\],
    'Supplies Subgroup Encoded' : le.fit\_transform(input\['Supplies Subgroup'\]),
    'Region Encoded' : le.fit\_transform(input\['Region'\]),
    'Route To Market Encoded' : le.fit\_transform(input\['Route To Market'\]),
    'Opportunity Result Encoded' : le.fit\_transform(input\['Opportunity Result'\]),
    'Competitor Type Encoded' : le.fit\_transform(input\['Competitor Type'\]),
    'Supplies Group Encoded' : le.fit\_transform(input\['Supplies Group'\]),
})

Os seguintes tipos de dados são compatíveis:

<table style="width: 100%;" class="simple-table"><colgroup><col><col></colgroup><tbody><tr><th>Tipo de dados no Tableau Prep Builder</th><th>Tipo de dados no Python</th></tr><tr><td>Cadeia de caracteres</td><td>Cadeia de caracteres UTF-8 padrão</td></tr><tr><td>Decimal</td><td>Duplo</td></tr><tr><td>Int</td><td>Inteiro</td></tr><tr><td>Bool</td><td>Booleano</td></tr><tr><td>Data</td><td>Cadeia de caracteres no formato ISO_DATE “AAAA-MM-DD” com compensação de zona opcional. Por exemplo, “2011-12-03” é uma data válida.</td></tr><tr><td>DateTime</td><td>Cadeia de caracteres no formato ISO_DATE_TIME “AAAA-MM-DDT:HH:mm:ss” com compensação de zona opcional. Por exemplo, “2011-12-03T10:15:30+01:00” é uma data vslid.</td></tr></tbody></table>

**Observação**: Date e DateTime sempre devem ser retornados como uma cadeia de caracteres válida.

Se quiser retornar campos diferentes do que você inserir, será necessário incluir uma função get\_output\_schema no script que define a saída e os tipos de dados. Caso contrário, a saída usará os campos dos dados de entrada, que são obtidos na etapa anterior à etapa do script no fluxo.

Use a seguinte sintaxe ao especificar os tipos de dados para seus campos no get\_output\_schema:

<table style="width: 100%;" class="simple-table"><colgroup><col><col></colgroup><tbody><tr><th>Função no Python</th><th>Tipos de dados resultantes</th></tr><tr><td>prep_string()</td><td>Cadeia de caracteres</td></tr><tr><td>prep_decimal()</td><td>Decimal</td></tr><tr><td>prep_int()</td><td>Inteiro</td></tr><tr><td>prep_bool()</td><td>Booleano</td></tr><tr><td>prep_date()</td><td>Data</td></tr><tr><td>prep_datetime()</td><td>DateTime</td></tr></tbody></table>

Colchetes podem ser usados para acessar linhas de um DataFrame. Colchetes simples geram uma série Pandas, enquanto colchetes duplos geram um DataFrame Pandas.

def create\_key(df):
return pd.DataFrame({
"Key": \['12345'\]
})

O exemplo seguinte mostra a função get\_output\_schema adicionada ao script de python de codificação de campo:

def get\_output\_schema():       
  return pd.DataFrame({
    'Opportunity Number' : prep\_int(),
    'Supplies Subgroup Encoded' : prep\_int(),
    'Region Encoded' : prep\_int(),
    'Route To Market Encoded' : prep\_int(),
    'Opportunity Result Encoded' : prep\_int(),
    'Competitor Type Encoded' : prep\_int(),
    'Supplies Group Encoded' : prep\_int()
})

## Conecte-se ao servidor Tableau Python (TabPy)

> [!IMPORTANT]
> 
> **Importante**: a partir da versão 2020.3.3 do Tableau Prep Builder, configure a conexão de servidor uma vez no menu superior Ajuda, em vez de configurar a conexão por fluxo na etapa de Script, clicando em Conectar-se ao servidor Tableau Python (TabPy) e inserindo os detalhes da conexão. Você precisará reconfigurar a conexão usando este novo menu para os fluxos criados em uma versão mais antiga do Tableau Prep Builder que você abre na versão 2020.3.3.

1. Selecione Ajuda > Configurações e desempenho > Gerenciar conexão de extensões do Analytics.
2. Na lista suspensa Selecionar uma extensão do Analytics, selecione Servidor Tableau Python (TabPy).
    
    ![Formulário de logon de configuração da Conexão de extensão do Analytics.](/tableau/current/pt-br/prep/pt-br/Img/prep_scripts_tabpy_signin.png)
3. Insira as credenciais:
    - A porta 9004 é a padrão para TabPy.
    - Se o servidor exigir credenciais, insira um Nome de usuário e uma Senha.
    - Se o servidor usar a criptografia SSL, marque a caixa de seleção Exigir SSL e clique no link Sem arquivo de configuração personalizado especificado para selecionar um certificado para a conexão. Esse é o arquivo de certificado do servidor SSL.
        
        **Observação**: o Tableau Prep Builder não fornece uma maneira de testar a conexão. Se houver um problema com a conexão, uma mensagem de erro será exibida.

## Adicionar um script ao fluxo

Inicie o servidor TabPy e conclua as seguintes etapas:

**Observação**: TabPy requer a versão 5.1.1 do pacote tornado para execução. Se você recebe o erro, 'tornado.web' não tem nenhum atributo 'assíncrono' ao tentar iniciar o TabPy, na linha de comando, execute `pip list` para verificar a versão do tornado instalada. Se você tiver uma versão diferente instalada, faça o download do [pacote do tornado versão 5.1.1](https://pypi.org/project/tornado/5.1.1/#files). Em seguida, execute `pip uninstall tornado` para desinstalar sua versão atual e, em seguida, `pip install tornado==5.1.1` para instalar a versão necessária.

1. Abra o Tableau Prep Builder e clique no botão Adicionar conexão ![Um botão para adicionar uma conexão de dados.](/tableau/current/pt-br/prep/pt-br/Img/prep_addconnection.png).
    
    Em criação na Web, na página Início, clique em Criar > Fluxo ou na página Explorar, clique em Novo > Fluxo. Em seguida, clique em Conectar a dados.
2. Na lista de conectores, selecione o tipo de arquivo ou servidor que hospeda seus dados. Se solicitado, insira as informações necessárias para acessar seus dados.
3. Clique no ícone de adição ![Um botão com um sinal de mais.](/tableau/current/pt-br/prep/pt-br/Img/prep_addicon.png) e selecione Adicionar script no menu de contexto.
    
    ![Adicione um script ao Tableau Prep.](/tableau/current/pt-br/prep/pt-br/Img/prep_script_add.png)
4. No painel Script, na seção Tipo de conexão, selecione Tableau Python (TabPy) Server.
    
    ![prep\_scripts\_python2.png](/tableau/current/pt-br/prep/pt-br/Img/prep_scripts_python2.png)
5. Na seção Nome do arquivo, clique em Procurar para selecionar o arquivo de script.
6. Digite o Nome da função e pressione Enter para executar seu script.
    
    ![Um script para definir as configurações do tipo de conexão.](/tableau/current/pt-br/prep/pt-br/Img/prep_scripts_python_pane.png)