Compartilhe com seus amigos!

Autor: João Guilherme Taverna

 

Muito tem se falado sobre a linguagem de programação “do momento” nos últimos tempos. Fácil, intuitiva, poderosa: são apenas alguns dos adjetivos encontrados para descrever a linguagem Python e suas inúmeras funcionalidades, frente a um visível crescimento em sua utilização.

 

Ao longo dos meses de agosto e setembro de 2021, participei do curso de Programação Python ministrado na Harve e pude ver com meus próprios olhos do que realmente se tratava, tendo sido possível entender o porquê de sua popularidade. Durante o curso aprendemos desde o mais básico – como a instalação do Python em sua máquina ou conceitos básicos de lógica de programação – até assuntos um pouco mais complexos, como o desenvolvimento web, por exemplo.

 

Acredito que cada um dos alunos tenha ingressado no curso com um objetivo diferente, visto que as aplicações para o Python são diversas, porém no meu caso já existia um interesse específico pela área de análise de dados. Desta forma, ao ter contato com o módulo que abordava a utilização do Python para tal, tive a certeza do poder que essa ferramenta possui e o quanto é capaz de agregar na rotina de um profissional que lida com uma imensa gama de dados e informações diariamente.

 

Sendo assim, como projeto final do curso, decidi optar por realizar uma breve análise de dados com a utilização da biblioteca Pandas, numa forma de demonstrar alguns dos conhecimentos adquiridos em sala de aula.

 

Tendo em vista um melhor entendimento, separei o projeto final nas seguintes etapas:

 

  1. Obtenção dos dados;
  2. Tratamento dos dados;
  3. Filtragem dos dados e análises.
  4. Resumo da análise

 

  • OBTENÇÃO DOS DADOS

 

Ao me deparar com a proposta que imaginei para o projeto final, inicialmente encontrei dificuldade para decidir o que exatamente eu iria analisar, visto que no momento não atuo em uma área que envolva a manipulação de dados como planilhas, por exemplo. Desta forma, após algumas pesquisas encontrei o site mockaroo.com, que se trata de uma API que gera dados aleatórios em diversos formatos de arquivo, entre eles o formato CSV.

 

 

Dentro da plataforma é possível moldar a base de dados que você pretende gerar, inserindo o nome das colunas no campo “Field Name” e o tipo de dado existente em cada coluna por meio do campo “Type”.

 

Vale lembrar que a escolha dos nomes das colunas é arbitrária, porém a escolha dos dados contidos em cada coluna é realizada com base numa série de dados que a API proporciona, como por exemplo: datas, nomes, números de cartão de crédito, URLs, endereços de e-mail, entre outros.

 

Decidi pensar em um problema que envolvesse uma planilha com dados referentes às últimas mil compras realizadas em um determinado e-commerce. As colunas foram então escolhidas como sendo: “First Name”, “Last Name”, “Email”, “Gender”, “Purchase” e “Credit Card”. Selecionei os respectivos tipos de dados para cada coluna, e em seguida realizei o download do arquivo CSV. 

 

Como optei por não utilizar a versão paga da API, fiquei limitado à versão grátis que disponibiliza um banco de dados com “apenas” mil linhas, mas que já é suficiente para a demonstração do projeto. 

 

  • TRATAMENTO DOS DADOS

 

Tendo posse dos dados que vão ser analisados, é hora de visualizá-los em sua forma bruta e, caso necessário, tratá-los para que possam ser manipulados por meio da programação. Ou seja, nessa etapa basicamente é onde os dados são padronizados para que possam ser adequados ao Python.

 

 

O primeiro passo é importar a biblioteca Pandas, dando um “apelido” para ela (no caso, “pd”). Em seguida, inserimos um data frame que irá ler o arquivo CSV e realizar a visualização da planilha. Para isso, utiliza-se dos seguintes comandos:

 

  • import pandas as pd
  • df = pd.read_csv(‘projeto_compras.csv’)
  • df

 

A primeira linha refere-se à importação da biblioteca. A segunda, atribui à variável “df” a leitura do arquivo csv que será analisado, e a terceira, por fim, visualiza o data frame.

 

Ao visualizar o data frame pode-se ter uma ideia das informações contidas nele. Porém, visualizar mil linhas de forma manual provavelmente seria uma tarefa chata e cansativa. Assim, um comando interessante para começar a análise pode ser o seguinte:

 

  • df.info()

 

Este comando é um método Pandas, que mostra informações do objeto data frame, incluindo o tamanho do data frame, tipo de dado de cada coluna, valores nulos, e memória usada.

 

 

Trata-se de uma etapa importante da análise preliminar, pois é aqui onde podemos ter uma ideia do tratamento dos dados que será necessário. Por exemplo: existem colunas com valores vazios? Se sim, estes valores vazios estão padronizados? E mais, os valores vazios são relevantes para a análise?

 

Bom, neste caso, ao criar a base de dados no Mockaroo, optei por não agregar valores vazios aos dados, por isso pode-se verificar que todos os valores são caracterizados como “non-null”.

 

A partir disto, já pensando numa possível análise, resolvi verificar se a distinção de clientes por gênero poderia ser plausível para explicar algum evento extraordinário que fizesse mais homens ou mais mulheres terem realizado compras.

 

 

Nesse caso o comando utilizado começa com df[‘Gender’], que serve para selecionar apenas a coluna “Gender” do data frame. Em seguida, usa-se do método value_counts() para contar os valores únicos contidos na série (coluna).

 

Temos que existe uma leve diferença entre a quantidade de homens e mulheres que realizaram compras, e assim decidi que a distinção por gênero no momento não traz significância para a análise. Seguimos.

 

Logo de início, é possível perceber que o data frame possui dados não padronizados, que poderão complicar ou inviabilizar a análise. Por exemplo, os nomes das colunas contém espaços, e a coluna “Purchase” possui o caractere especial de cifrão em seus valores, o que significa que teremos que alterar estes dados. Para padronizar as séries pandas (colunas), é preciso renomeá-las. Para isso, existe um método do pandas específico:

 

 

Ao utilizar o comando df.columns, é necessário descrever uma lista de strings que serão os novos nomes das colunas. É válido lembrar que esta lista deve conter o mesmo número de strings que o data frame original continha antes. Pode-se perceber que os nomes das colunas foram padronizados.

 

Agora, é hora de remover o caractere especial de toda a coluna “purchase_dollars” do data frame. Inicialmente, procurei criar uma função genérica que pudesse ser aplicada à uma série Pandas.

 

 

A função em questão depende do parâmetro “valor”. Este parâmetro foi definido para ter seu valor inicial como sendo a própria coluna com o valor das compras. Feito isso, dentro da função, foi atribuído ao “valor” o método replace, que se torna responsável por checar o caractere “$” em cada linha da respectiva coluna, trocando este caractere por um espaço em branco, e por fim retornando o “valor” já alterado.

 

Agora resta aplicar essa função à coluna de fato. Para isso, foi feito o seguinte:

 

 

Onde nessa etapa, apenas foi aplicada a função “remover_caractere” para toda a coluna de fato.

 

Mas será que isso é suficiente? A resposta é: não. Em seguida, é necessário transformar os valores desta coluna para um tipo de dado numérico, visto que no momento trata-se de um dado do tipo object.

 

 

Um processo bem simples, mas que é totalmente necessário para que seja possível realizar análises numéricas nesta coluna. Utiliza-se do método astype(float) para formatar os dados da coluna para o tipo float. A última linha refere-se apenas à verificação do tipo de dados que a coluna contém, confirmando que a alteração foi de fato concluída.

 

  • FILTRAGEM DOS DADOS E ANÁLISES

 

Dando sequência, logo após realizar o tratamento dos dados é necessário moldá-los de acordo com a proposta de análise a ser realizada. Decidi que a análise giraria em torno da seguinte proposta:

 

  • Encontrar o faturamento total;
  • Encontrar a média de valor gasto pelos clientes;
  • Selecionar as compras acima de mil dólares, para que sejam enviados cupons de desconto para as próximas compras dos respectivos clientes.

 

Para isso, vamos manipular mais uma vez os dados:

 

 

Onde foi realizado apenas um somatório dos valores contidos na coluna “purchase_dollars”, por meio do método sum().

 

 

Nesse caso, foi realizado o cálculo da média dos valores da coluna, por meio do método mean().

 

Agora, a filtragem dos valores da coluna para compras acima de mil dólares:

 

 

Nesta etapa, apenas atribui a um novo data frame o filtro do data frame original, selecionando apenas valores maiores ou iguais a mil.

 

Note que a tabela agora não contém mais mil linhas, mas apenas 489. Isso confirma que o filtro foi de fato aplicado. Outro ponto a ser notado, é que o index foi tirado de ordem, visto que houve linhas apagadas nesse processo. Se desejar, é possível resetar o valor do index para que ele fique ordenado novamente.

 

 

Aqui, aplicamos o método reset_index() ao data frame filtrado, colocando os argumentos drop = True e inplace = True para que a coluna com os index antigos seja descartada. Sendo assim, nesta etapa o código Python para este projeto está finalizado.

 

  • RESUMO DA ANÁLISE

 

Tendo em vista o que foi proposto para esta análise, foi possível concluir que:

 

  • O faturamento total, referente às mil compras, foi de $988,359.2
  • O valor médio das compras foi de: $988.35
  • 489 clientes realizaram compras acima de $1000

 

Com relação aos clientes aptos a receber um cupom de desconto para a próxima compra, o próximo passo seria, por exemplo, automatizar um e-mail a ser enviado para estes clientes, contendo o cupom de desconto.

 

Infelizmente ainda não cheguei neste nível de programação Python, além de que fiquei restrito apenas a análise dos dados neste projeto, entretanto pode ser um aspecto a ser exercitado e quem sabe apresentado em um projeto futuro.

 

Desta forma, acredito que foi possível apresentar o meu projeto final e demonstrar de forma breve como a programação Python pode ser fácil e intuitiva, além de ágil no momento de programar, pois com algumas poucas linhas de código é possível realizar análises interessantes para um conjunto de dados. Forte abraço!

 

 

O que aprendemos nesse artigo?

 

O que falam a respeito do python?

Muito tem se falado sobre a linguagem de programação “do momento” nos últimos tempos. Fácil, intuitiva, poderosa: são apenas alguns dos adjetivos encontrados para descrever a linguagem Python e suas inúmeras funcionalidades, frente a um visível crescimento em sua utilização.

O que podemos aprender no curso de python na harve?

Durante o curso aprendemos desde o mais básico - como a instalação do Python em sua máquina ou conceitos básicos de lógica de programação - até assuntos um pouco mais complexos, como o desenvolvimento web, por exemplo.

Qual é a biblioteca utilizada nesse projeto?

Como projeto final do curso, decidi optar por realizar uma breve análise de dados com a utilização da biblioteca Pandas.

O que é o site Mockaroo?

O site mockaroo.com, se trata de uma API que gera dados aleatórios em diversos formatos de arquivo, entre eles o formato CSV.

O que o comando df.info() no pandas faz?

Este comando é um método Pandas, que mostra informações do objeto data frame, incluindo o tamanho do data frame, tipo de dado de cada coluna, valores nulos, e memória usada.

Qual é a proposta dessa analise?

Encontrar o faturamento total; Encontrar a média de valor gasto pelos clientes; Selecionar as compras acima de mil dólares, para que sejam enviados cupons de desconto para as próximas compras dos respectivos clientes.

 

 

Compartilhe com seus amigos!

Deixe um comentário