Dinamismo do Pandas

Victor Amichi
geleia
Published in
3 min readMar 11, 2020

Fala Pessoal!

Nesta postagem vou comentar sobre o maior aliado dos Analistas de dados e o quanto ele pode aperfeiçoar a fase de transformação de uma ETL(extract, transform, load) dentro do power query no Power Bi.

Recentemente, participei de projeto no qual precisava medir o tempo médio que os leads de um sistema CRM ficavam em cada estágio de sua pipeline. Seus dados de atividades eram registrados em uma tabela no MySQL, até ai tudo bem, certo?Errado! O problema é que haviam linhas duplicadas onde eram registrados dois ou mais atividades de um mesmo lead no mesmo estágio e para piorar os dados eram registrados em formato de pilha e como eu precisava desses dados pivotado já imaginei uma serie de subqueries.

Tabela de Atividades

Como era de se imaginar, realizar esse procedimento no MySQL era inviável, pois com essa quantidade de subqueries, mesmo com a criação de index, a performance da consulta havia ido para o saco demorando 40 segundos para um total de somente 90.000 linhas.

Dados Pivotados na Consulta

Ta, mas e agora…? Pra nossa sorte o Power Bi é uma ferramenta tão poderosa que nos permite realizar o pivot da tabela em seu power query, porem o sistema retorna ‘error’ para linhas duplicadas já que ele não pode determinar qual dos valores é real.

Error nas Duplicatas

Mas sem alvoroço, pois para esse case, nada como um distinct e order by em sua consulta não resolva. Porem existe outra forma ainda mais divertida…

Utilizando o python e pandas no Power Bi, mais especificamente no power query, podemos realizar toda a modelagem de nossos dados. Isso no traz uma grande vantagem pois nesse ambiente fazemos magica com os dados.

Nela é possível remodelar toda a estrutura da tabela, realizar agrupamentos, filtros, adicionar colunas calculadas e condicionais. Isso somente com algumas linhas de código, literalmente o céu é o limite.

Query em Python

E com algumas linhas de código, nossa tabela foi pivotada e de quebra foi calculado o tempo que cada lead passa em cada estágio de seu pipeline.

Pronto… agora basta retirar os outliers e realizar a media do tempo que os leads gastam em cada etapa do pipeline.

Neste artigo, vimos um pouco do que o pandas é capaz, espero que tenham gostado e até a próxima.

Caso tenha curiosidade segue abaixo o link de como funciona a função pivot_table do pandas:

--

--