Introdução à Análise de Dados
Carregamos nossa tabela, mas ainda não temos informações sobre esses dados, como quais colunas estão presentes e quais são os tipos de dados. Também não sabemos se há informações duplicadas ou dados ausentes. Portanto, é o momento de entender o arquivo que a empresa nos forneceu, para que possamos utilizá-lo posteriormente no processo de modelagem e na criação do nosso modelo para prever o tempo de entrega.
Visualização e Estrutura da Tabela
Para ampliar nossa janela e visualizar melhor a tabela criada, vamos ao menu Explorer, no lado esquerdo, e clicamos na seta na parte superior. Agora, conseguimos ampliar a visualização. Vamos à tabela entregas, na parte de visualização, no centro da tela. Ao clicar em visualização, podemos ver cada coluna e as primeiras linhas.
Descrição das Colunas
Vamos verificar essas informações. Temos, inicialmente, o ID de pedido, um código único para cada pedido. A segunda coluna contém anos de experiência, que representa o tempo de experiência, em anos, da pessoa que fez a entrega. Em seguida, temos a classificação do agente, que é a nota dada à pessoa que fez a entrega, provavelmente variando de 0 a 5. Também há colunas com coordenadas geográficas, como latitude e longitude da loja, ou seja, o local de origem da entrega, e latitude e longitude do local de entrega, ou seja, o endereço do cliente.
Além disso, temos dados temporais, como a data do pedido, contendo ano, mês e dia, e a hora em que o pedido foi feito. Há também a hora de retirada, indicando quando o pedido saiu do local de trabalho dos entregadores para a entrega. Outras informações incluem clima, tráfego, veículo usado, área da entrega, categoria do produto entregue e nosso alvo, que é o tempo de entrega que queremos prever no modelo de Machine Learning.
Análise de Dados Ausentes e Nulos
Podemos descobrir quantas informações temos observando no final da página, no canto inferior direito, que estamos visualizando de 1 até 200, mas o total é de 43.508. Há uma quantidade significativa de informações coletadas pela empresa. Notamos que, na hora do pedido, várias linhas estão com NAN, indicando dados ausentes. A sigla NAN significa Not a Number (não é um número), ou seja, falta esse valor. Em clima e tráfego, várias linhas estão com NU, indicando dados nulos. Isso é importante para análise futura e verificação de quantas informações estão nulas.
Detalhes de Armazenamento e Esquema de Dados
Na parte de visualização, em detalhes, ao clicar, temos informações adicionais, como o ID da tabela, data de criação e última modificação. Descendo um pouco, vemos informações de armazenamento, já que trabalhamos em nuvem. Confirmamos que há 43.508 linhas e o total de bytes lógicos é 6,29 MB. Os bytes físicos atuais e totais estão zerados, pois ainda não fizemos consultas. Quando começarmos a fazer consultas, será exibido o uso em bytes.
Na parte de esquema, ao clicar, temos informações sobre o tipo de dado de cada coluna. Por exemplo, o ID do pedido é do tipo string, ou seja, texto. Anos de experiência do agente é do tipo inteiro, um número inteiro. A classificação do agente, latitude e longitude são do tipo float. A data é do tipo data, e o horário de retirada é do tipo time. Clima, tráfego, veículo, área e categoria do produto são strings, dados categóricos. O tempo de entrega é do tipo float.
Consulta SQL para Contagem de Colunas
Podemos pensar, por exemplo, em quantas colunas temos aqui. Como são poucas informações, seria possível contar manualmente, mas imagine se fosse um arquivo muito grande, com muitas colunas. Como faríamos isso? Vamos checar da seguinte forma: na parte superior, ao lado da tabela entregas, há um ícone de lupa para consultas. Ao clicar, podemos fazer consultas SQL e obter os resultados. Vamos começar a testar isso e fazer uma primeira consulta para verificar o número de colunas.
Inicialmente, é apresentada uma consulta como sugestão, mas não a utilizaremos. Vamos apagar tudo e digitar o seguinte: em caixa alta, SELECT.
Vamos aumentar o zoom para visualizar melhor. Para contar algo, utilizamos COUNT. Abrimos parênteses e colocamos um asterisco para contar todas as colunas. Nomeamos isso como total_colunas.
SELECT COUNT(*) AS total_colunas
Na próxima linha, precisamos especificar de onde queremos fazer essa contagem. Colocamos FROM e, entre crases, inserimos o nome do nosso projeto. Para isso, voltamos ao Explorer, clicamos na seta, acessamos nosso projeto em "BKML dados logística", clicamos nos três pontos e copiamos o ID. Fechamos a visualização do Explorer e colamos o ID. Em seguida, adicionamos um ponto e utilizamos o information_schema do BigQuery, que nos permite coletar informações sobre as tabelas. Digitamos INFORMATION_SCHEMA.COLUMNS.
FROM `projeto-bqml-logistica-454114.bqmlDadosLogistica.INFORMATION_SCHEMA.COLUMNS`
Na próxima linha, especificamos a tabela na qual queremos contar o número de colunas. Colocamos WHERE e table_name = 'entregas'. Por fim, adicionamos um ponto e vírgula para executar a consulta.
WHERE table_name = 'entregas';
Selecionamos e executamos. O resultado mostra que o total de colunas é 16.
Verificação de Duplicações
Há algo mais que podemos fazer neste momento. Temos vários IDs de pedidos, e surge a dúvida: há algum pedido duplicado? Muitas vezes, é comum haver duplicações em datasets. Isso é importante, pois pode atrapalhar um modelo de machine learning futuramente, com informações repetidas. Podemos verificar se há duplicações.
Para isso, vamos fazer outra consulta. Digitamos SELECT em caixa alta.
Vamos fazer uma contagem dos IDs de pedido. Colocamos COUNT em caixa alta, abrimos parênteses e, para contar números distintos, utilizamos DISTINCT. Especificamos a coluna id_pedido.
COUNT(DISTINCT ID_pedido)
A lógica é contar todos os IDs de pedido distintos. Se essa contagem for menor que a contagem total de IDs, significa que há duplicações. Nomeamos isso como tem_duplicados.
< COUNT(*) AS tem_duplicados
Precisamos também colocar FROM. Podemos copiar o FROM da consulta anterior, colar e adicionar o nome do projeto e a tabela entregas. Fechamos com crase e ponto e vírgula.
FROM `projeto-bqml-logistica-454114.bqmlDadosLogistica.entregas`;
Selecionamos e executamos. O resultado foi falso, indicando que não há duplicações. Portanto, não precisamos tratar dados duplicados.
Próximos Passos
No próximo vídeo, trabalharemos com colunas que contêm dados nulos. Faremos uma contagem desses dados e verificaremos se é necessário algum tratamento antes de prosseguir com as análises. Até lá!