Datasets com Tablib

Flávio Conca
Curso de Programação Python
4 min readApr 8, 2020

O Tablib é uma biblioteca de conjuntos de dados tabulares independente de formato, escrita em Python. Ele permite importar, exportar e manipular conjuntos de dados tabulares e exibir dados de maneira “bonitinha”.

Escopo do projeto

Nosso objetivo é conseguir criar uma tabela, inserir e alterar e converter uma saída de dados para JSON com pouca, mas pouca linha de código.

Este será o nosso Dataset com Tablib.

Os recursos avançados incluem segregação, colunas dinâmicas, tags e filtragem e importação e exportação do seguintes formatos:

  • Excel (Sets + Books);
  • JSON (Sets + Books);
  • YAML (Sets + Books);
  • Pandas DataFrames (Sets);
  • HTML (Sets);
  • Jira (Sets);
  • TSV (Sets);
  • ODS (Sets);
  • CSV (Sets);
  • DBF (Sets).

Obviamente, a maneira recomendada de instalar o Tablib é com o pip:

pip install tablib

Caso possua uma versão já instalada do Tablib e precisar atualizá-la:

pip install tablib --upgrade

O Tablib é parcialmente dependente dos módulos pyyaml, simplejson e xlwt. Para reduzir problemas de instalação, versões integradas de todas as bibliotecas necessárias estão incluídas no Tablib. No entanto, se o desempenho é importante para você, você deve instalar todos os pacotes:

pip install PyYAMLpip install simplejsonpip install xlwtpip install openpyxl

Ou, se for precisar manipular arquivos de Excel:

pip install tablib[xlsx]

Ou com Pandas:

pip install tablib[pandas]

Caso queira, todos os formatos possíveis:

pip install tablib[all]

Quer seria equivalente ao comando:

pip install tablib[html, pandas, ods, xls, xlsx, yaml]

Agora vamos começar!

Primeiramente, só um aviso: saiba que estes dados podem não funcionar corretamente se tentar rodar diretamente pelo Terminal usando o comando direto. Com o IDLE Python você conseguirá visualizar os resultados.

Caso queira uma visualização mais limpa, use o Jupyter Notebook ou Colab. Ambos você precisará instalar a extensão usando quase o mesmo comando, apenas inserindo uma exclamação antes do comando “pip”.

!pip install tablib

Vamos criar o primeiro conjunto de dados

Um Dataset nada mais é o que a própria tradução do inglês, um conjunto de dados. Criar sua própria instância do objeto tablib.Dataset é simples.

Vamos iniciar importando a biblioteca do Tablib já instalada:

import tablib

Vamos criar dois objetos, um para o cabeçalho da tabela e outro para o conteúdo com os dados e suas respectivas linhas. Iniciaremos pelos dados dos cabeçalhos, como no Escopo do Projeto, com Nome, Sobrenome e Idade.

Crie uma variável e atribua a ela o objeto “headers”:

headers = ('Nome', 'Sobrenome', 'Idade')

Agora, vamos criar outro objeto com os dados na variável “data”:

data = [
('Flavio', 'Conca', 36),
('João', 'Silva', 26),
('Maria', 'Santos', 23)
]

Agora, vamos iniciar o novo Dataset e os seus objetos data e headers:

data = tablib.Dataset(*data, headers=headers)

Agora, vamos exibir o conteúdo do Dataset:

print(data)

Perfeito! Em pouquíssimas linhas, criamos um conjunto de dados, formatamos cabeçalhos com título e inserimos dados. Você também pode obter outras formas de exibição do conjunto de dados.

Se quiser visualizar no formato Pandas DataFrame, o comando é:

data.export('df') ou print(data.export('df'))

Ou no formato JSON:

data.export('json') ou print(data.export('json'))

Ou no formato Dicionário:

data.dict ou print(data.dict)

Até aqui, com estes poucas linhas de código, com o pacote Tablib já pode criar muita coisa. Mas, vamos concluir nosso escopo.

Adicionar Colunas

Vamos adicionar em nosso Dataset uma nova coluna usando “append_col”. Temos 3 colunas, Nome, Sobrenome e Idade. Vamos adicionar a quarta coluna com dados do Sexo de cada pessoa conforme a ordem de registro, que é Flávio, João e Maria. Logo, temos 3 dados sobre o sexo a serem inseridos.

Para cada elemento (pessao), vamos representar com M ou F e ao mesmo tempo, criar o nome do header (cabeçalho) da coluna que vamos criar:

data.append_col(['M', 'M', 'F'], header='Sexo')

Agora, vamos imprimir o Dataset:

print(data)

Agora, pode tratar os dados como se estivesse manipulando uma array para navegar dentro das linhas ou colunas. Se quiser, por exemplo, exibir apenas os nome do Dataset, basta seguir com o padrão, como:

print(data[‘Nome’])

Ou:

data[0]

Legal, né? Se você quiser, o Notebook deste projeto está neste link aqui com alguns outros comandos essenciais.

Este e outros programas fazem parte projeto de aprendizado PyLab e estão todos disponíveis pelo Repositório do GitHub.

Até o próximo projeto e bom aprendizado!

Fonte: Tablib https://tablib.readthedocs.io/en/stable/

--

--