Datasets com Tablib
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.
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/