Alura > Cursos de Inteligência Artificial > Cursos de IA para Análise de Dados & BI > Conteúdos de IA para Análise de Dados & BI > Primeiras aulas do curso Análise de dados com Python: utilizando o ChatGPT como assistente

Análise de dados com Python: utilizando o ChatGPT como assistente

Acesso aos dados - Apresentação

Já pensou em utilizar Inteligências Artificiais para te oferecer suporte com guias, ideias e até mesmo códigos para te auxiliar no início da sua jornada profissional e estudantil com dados?

É exatamente isso que faremos no curso de Análise de Dados com Python utilizando o ChatGPT como assistente.

Sou a Mirla Costa, instrutora da Alura e te acompanharei nesse curso!

Mirla é uma mulher de pele clara e cabelos pretos cacheados na altura do ombro. Usa óculos de grau com armação redonda, piercing no septo e aparelho dental. Está com uma camiseta azul-escura. Ao fundo, uma parede lisa com duas prateleiras com livros e objetos, a iluminação é degradê do azul para o rosa.

Nesse curso, somos cientistas de dados júnior recém contratados em uma grande franquia de supermercados.

Porém, chegamos na empresa em uma fase na qual está sendo conduzida a avaliação trimestral de desempenho das lojas. Portanto, contribuiremos para essa avaliação trimestral, realizando a análise de vendas das franquias.

Para o desenvolvimento do projeto, utilizaremos prompts que já foram criadas e testadas no ChatGPT, a Inteligência Artificial que usaremos nessa jornada. Esse material está disponível no notebook para que você pode fazer download e testar.

Lembrando que mesmo que você utilize a mesma prompt, provavelmente os retornos não serão iguais. Isso porque o ChatGPT trabalha com aleatoriedade nas respostas.

Mas, não se preocupe. Neste curso também aprenderemos a criar prompts úteis e a criticar os resultados obtidos pelo ChatGPT.

Para que você possa tirar o máximo proveito deste curso, recomendamos que você tenha conhecimento em Python, Pandas e Matplotlib.

Vamos começar?

Acesso aos dados - Coletando os dados

Fomos contratados como cientistas de dados júnior na ZOOP, um grande supermercado com franquias em todo o país e reconhecido por vender produtos de alta qualidade.

Estamos na primeira semana de trabalho e toda a equipe de dados está muito focada em uma demanda referente à avaliação trimestral da ZOOP, pois a empresa está finalizando o seu trimestre de operação.

Para auxiliar nas análises, a liderança nos forneceu um dataset que contém informações sobre o total obtido em vendas nos últimos três meses. A partir disso, poderemos fazer uma avaliação e também ajudar nesta demanda.

O objetivo é que realizemos:

Tudo isso de forma com que possamos contribuir com toda a equipe na parte de análise das vendas obtidas durante o trimestre.

Porém, temos um desafio. Como estamos na primeira semana de empresa, ainda nos sentimos um pouco inseguros com as decisões que tomaremos em relação a esses dados.

Sabendo disso, a liderança informou que poderíamos contar com a ajuda do ChatGPT para auxiliar na tomada de decisões, já que ela estará ocupada com as demandas relacionadas a esta avaliação trimestral.

Seguiremos esse direcionamento e utilizaremos um link do GitHub, enviado pela liderança, para termos acesso a esses dados. Vamos analisá-lo.

Ao abrir o arquivo, notamos que ps dados estão estruturados em listas e dicionários, uma característica muito específica de arquivos do tipo JSON. No entanto, para este tipo de estrutura, é muito difícil fazer uma análise. Precisamos acessar esses dados de uma forma mais tabular.

Para isso, precisaremos utilizar algumas ferramentas de programação, usaremos a linguagem Python . Para acessar estes dados, contaremos com a ajuda do ChatGPT que pode nos fornecer uma solução para a leitura deste arquivo em JSON.

Agora, analisaremos nosso notebook. Ele já está personalizado e o usaremos durante todo o projeto. Ao acessá-lo, encontramos uma URL que nos da acesso aos dados JSON, além de prompts que já foram testados no ChatGPT e retornam as melhores respostas.

Leitura de dados JSON e visualização tabular

Testaremos o primeiro prompt para checarmos se o ChatGPT consegue nos auxiliar a acessar esses dados em JSON. O prompt diz:

Vamos atuar como cientistas de dados em uma empresa de supermercados. Recebemos dados no formato de arquivo JSON, estruturados em listas e dicionários. O arquivo está disponibilizado em uma URL do Github. Precisamos analisar esses dados para ajudar nas decisões da empresa. Programamos em Python e conhecemos as bibliotecas de análise de dados Numpy e Pandas. Portanto, priorize o uso dessas bibliotecas. Por favor, nos informe como podemos fazer a leitura desses dados no formato JSON e como podemos visualizá-los em formato de tabela no Python.

Perceba que tentamos fornecer o máximo de detalhes e informações objetivas para que o ChatGPT ajude a solucionar nosso problema.

Copiamos esse prompt. No navegador, acessamos o ChatGPT e fazemos o login. Em seguida, colamos o texto no chat e apertamos "Enter".

Temos o seguinte retorno:

Para ler dados no formato JSON e visualizá-los em formato de tabela no Python, você pode seguir os passos a seguir:

1. Instale as bibliotecas (caso ainda não estejam instaladas): Você pode instalar as bibliotecas NumPy e Pandas usando o pip:

bash

pip install numpy pandas

2. Importe as bibliotecas: Importe as bibliotecas NumPy e Pandas em seu script Python:

python

import numpy as np
import pandas as pd

//Retorno omitido

Primeiro o ChatGPT informa que é possível acessar dados em JSON e que a primeira etapa que podemos fazer é a instalação de bibliotecas. Como estamos utilizando o Google Colab, essa etapa pode ser omitida, pois as bibliotecas no PyPandas já estão instaladas.

Sendo assim, vamos para a segunda etapa, que é importar essas bibliotecas. Importemos o numpy e o pandas como as ps. Para isso, copiamos o código gerado pelo Chat, voltamos para o notebook e colamos na primeira célula. Em seguida, apertamos "Shift + Enter" para executar.

import numpy as np
import pandas as pd

Feito isso, vamos voltar para o nosso notebook, fazer a seleção do código, pressione Ctrl + V na primeira célula e pressione Shift + Enter para executar.

Segundo o ChatGPT, o próximo passo é ler os dados JSON. Então, ele sugere um código com uma URL, que não usaremos, que é armazenado em uma variável chamada df os dados que foram obtidos em JSON utilizando o pd.read_json(url).

Copiamos esse código e colamos na próxima célula do Colab. Feito isso, excluímos a linha com a URL, pois já temos a URL com nossos dados no início do notebook, que inclusive possui o mesmo nome da variável. O código fica da seguinte forma:

df = pd.read_json(url)

Em seguida, o ChatGPT sugere a visualização dos dados em formato de tabela, utilizando print(df.head()). Copiamos esse código e colamos na mesma célula anterior. Para executar, apertamos "Shift + Enter".

df = pd.read_json(url)
print(df.head())

Como retorno temos uma visualização não muito interessante dos nossos dados. Para visualizarmos de forma tabular, basta removermos o comando print e também os parênteses ao redor dele. Dessa forma:

df = pd.read_json(url)
df.head()

Ao executar essa célula, temos o retorno abaixo:

item_identificadorloja_identificadorvendas_totaisitem
0FDB08OUT018176503.58{'item_peso': 6.055, 'item_conteudo_gordura': ...{'loja_ano_estabelecimento': 2019, 'loja_taman...
1DRQ35OUT049185758.20{'item_peso': 9.3, 'item_conteudo_gordura': 'B...{'loja_ano_estabelecimento': 2009, 'loja_taman...
2FDD14OUT018165983.94{'item_peso': 20.7, 'item_conteudo_gordura': '...{'loja_ano_estabelecimento': 2019, 'loja_taman...
3FDY37OUT045314923.40{'item_peso': 17.0, 'item_conteudo_gordura': '...{'loja_ano_estabelecimento': 2012, 'loja_taman...
4FDY59OUT01864782.34{'item_peso': 8.195, 'item_conteudo_gordura': ...{'loja_ano_estabelecimento': 2019, 'loja_taman...

Agora, conseguimos ter uma visualização tabular dos dados sem a estrutura de JSON.

No próximo vídeo, analisaremos os dados para verificar o tipo de informação.

Até lá!

Acesso aos dados - Normalizando o DataFrame

Vamos verificar os dados que acessamos na tabela. Temos duas colunas iniciais chamadas item_identificador e loja_identificador.

Nelas constam códigos de identificação, portanto na coluna a item_identificador se refere ao produto vendido e a loja_identificador à loja que vendeu o produto.

Em seguida, temos a coluna vendas_totais, que mostra o total obtido em vendas durante o trimestre para o produto e loja específica.

Após, temos duas colunas um pouco intrigantes, que são item e loja. Cada uma se refere a um conjunto de informações. A coluna item refere-se aos produtos vendidos e a coluna loja às informações da loja que vendeu o produto durante o trimestre.

Usando o json_normalize

Mas temos um problema, esses dados estão aninhados em dicionários. Nessa organização de dados, fica difícil estudá-los. É interessante destrincharmos esses dicionários para conseguir acessar as informações. Mas, como faremos isso? Usaremos o ChatGPT para nos auxiliar.

Usaremos o seguinte prompt:

O DataFrame "df" possui as colunas "item_identificador", "loja_identificador", "vendas_totais", "item" e "loja". As colunas "item" e "loja" contêm dicionários aninhados dentro de cada uma das linhas. Como posso transformar os dados dos dicionários e colunas para torná-los mais acessíveis no meu DataFrame?

Copiamos o prompt, colamos no ChatGPT seguido de "Enter".

Como retorno, a IA sugere que utilizemos a função json_normalize da biblioteca Pandas, que permite acessar os valores do dicionário que estão juntos e colocá-los em colunas separadas dentro do DataFrame. A IA sugere um código, portanto, copiamos e colamos no Colab.

Com esse código, será importado a função json_normalize do Pandas. Depois, ele armazena o DataFrame normalizado em outros DataFrames. Portanto, cria o df_item_normalized, que recebe os dados normalizados de df['item']. Além disso, cria um novo DataFrame, df_loja_normalized, que armazena os dados normalizados de df['loja'].

Em seguida, ele concatena esses novos dados ao nosso DataFrame original e exclui as colunas antigas de item e loja. Antes de rodarmos o código, adicionaremos na última linha um df para visualizarmos o produto final dessa transformação.

# Importe a função json_normalize
from pandas import json_normalize

# Normalize os dados da coluna "item"
df_item_normalized = json_normalize(df['item'])

# Normalize os dados da coluna "loja"
df_loja_normalized = json_normalize(df['loja'])

# Combine os DataFrames normalizados com o DataFrame original
df = pd.concat([df, df_item_normalized, df_loja_normalized], axis=1)

# Exclua as colunas originais de "item" e "loja" se necessário
df.drop(['item', 'loja'], axis=1, inplace=True)
df

Após apertar "Shift + Enter" temos o retorno abaixo:

item_identificadorloja_identificadorvendas_totaisitem_pesoitem_conteudo_gorduraitem_visibilidadeitem_tipoitem_precoitem_quantidade_vendaloja_ano_estabelecimentoloja_tamanholoja_tipo_localizacaoloja_tipo
0FDB08OUT018176503.586.055Baixo Teor de Gordura0.031230Frutas e Vegetais160.36None2019MédioNível 3Supermercado Tipo 2
1DRQ35OUT049185758.209.300Baixo Teor de Gordura0.042357Bebidas Alcoólicas123.24None2009MédioNível 1Supermercado Tipo 1
2FDD14OUT018165983.9420.700Baixo Teor de Gordura0.170500Enlatados184.13None2019MédioNível 3Supermercado Tipo 2
3FDY37OUT045314923.4017.000Regular0.026623Enlatados144.25None2012NoneNível 2Supermercado Tipo 1
4FDY59OUT01864782.348.195Baixo Teor de Gordura0.000000Confeitaria93.15None2019MédioNível 3Supermercado Tipo 2
..........................................
8545FDY08OUT01028096.769.395Regular0.286345Frutas e Vegetais139.18None2008NoneNível 3Mercado
8546FDC41OUT017130163.9015.600Baixo Teor de Gordura0.117575Alimentos Congelados75.67None2017NoneNível 2Supermercado Tipo 1
8547NCQ53OUT045614533.4017.600Baixo Teor de Gordura0.018944Mercearia237.36None2012NoneNível 2Supermercado Tipo 1
8548FDL46OUT017164985.2420.350baixo teor de gordura0.054363Lanches117.95None2017NoneNível 2Supermercado Tipo 1
8549NCN30OUT04696541.0016.350BTG0.016993Cereais95.74None2007PequenoNível 1Supermercado Tipo 1

Repare na quantidade de dados que estavam escondidos dentro daqueles dicionários. Agora, o DataFrame se expandiu bastante e isso abrirá novas oportunidades de estudo e análise de dados.

Agora que temos acesso aos dados, o próximo passo é a exploração.

Faremos isso na próxima aula. Até lá!

Sobre o curso Análise de dados com Python: utilizando o ChatGPT como assistente

O curso Análise de dados com Python: utilizando o ChatGPT como assistente possui 78 minutos de vídeos, em um total de 40 atividades. Gostou? Conheça nossos outros cursos de IA para Análise de Dados & BI em Inteligência Artificial, ou leia nossos artigos de Inteligência Artificial.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda IA para Análise de Dados & BI acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas