18 de maio de 2014

Dados normalizados (reshape data)

O que é

Reshape (ou unpivot ou normalizar) de uma tabela é um processo necessário em alguns casos pra conseguir visualizar os dados usando algum software como Tableau, Raw, R, ou mesmo pra utilizá-los no Excel com mais funcionalidades (como Filtro, Subtotais, …).

Uma tabela normalizada (reshaped) é uma tabela em um formato que o software vai entender. Visualmente (como tabela) pode ficar mais confusa ou redundante. Mas o propósito básico dela é conseguir fazer cálculos ou utilizar os dados para visualização. Então, sabendo quando utilizar, pode ser muito útil ou essencial.

Como devem ficar os dados

Essa é a tabela antes do reshape.
Ela é lida célula por célula, como no batalha naval. ("Cidade 3" tem o "Problema B" = 3. Bomba!)
Nas células no meio do caminho, estão o número de ocorrências.
É uma boa tabela para compilar dados e visualizar como tabela no Excel mesmo.
É comum também cada coluna ser um período (2006, 2007, 2008...)

Tabela antes do reshape
Em alguns casos, a tabela precisa do reshape para ficar neste formato.
Ela deve ser lida linha por linha.
Agora, cada coluna tem apenas uma "característica" (Problema e Valor) da "coisa" (Cidade) que está na primeira coluna. 
Esse formato de tabela é utilizado pelos softwares de banco de dados (tabela normalizada). Uma das regras da tabela normalizada é que cada linha pode ser lida individualmente e se refere apenas a uma coisa. Cada linha é um registro, uma ocorrência. Na linha 6, o "Problema B" e o valor "3" dizem respeito à "Cidade 3". 
Problema e Valor são características da Cidade. O conjunto dos 3 na mesma linha é um registro.

Tabela depois do reshape





Como fazer



Plugins

(Tools for reshaping / unpivot / normalize data)
Neste caso foi usado um plugin para Excel para fazer a transformação:

Reshaping Data - Tableau Add-in. (Funciona só em Windows)
http://kb.tableausoftware.com/articles/knowledgebase/addin-reshaping-data-excel

O Tableau também tem um tutorial de como preparar os dados
http://kb.tableausoftware.com/articles/knowledgebase/preparing-excel-files-analysis

Alternativa para Excel no Mac:

Add-in "Table 2 DB":
https://drive.google.com/file/d/0Bya641p0XuQjQ3czOFUxeE1TUEk/view?usp=sharing
(Excel for Mac Reshape Add-in)

Veja onde instalar:
Table 2 DB installation folder (Excel for Mac Add-in)

Outra forma possível é o Data Wrangler (http://vis.stanford.edu/wrangler/).

Outro Exemplo

Um exemplo de reshape com dados reais: