Análise Exploratória em Python – Como Analisar Seus Dados?

Hoje eu vou te mostrar a importância da análise exploratória em Python e como você vai fazer a análise dos seus dados!

A análise exploratória em Python é a etapa em que você conhece a base antes de modelar: importe o arquivo com o pandas (pd.read_csv), veja as primeiras e últimas linhas com head e tail, confira tamanho e tipos com shape e info, localize os valores nulos com isnull().sum() e use o boxplot para achar outliers.

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

O que você aprende neste vídeo

Resposta rápida: A aula mostra um roteiro de análise exploratória em Python com pandas, aplicado ao top 10 diário da Netflix. Você aprende a inspecionar a base com head, tail, shape e info, interpretar valores nulos, ler estatísticas com describe, achar outliers no boxplot e investigar colunas com filtros e value_counts antes de tratar os dados.

Neste vídeo (21 min):

  • 1:40 - A base da aula: os 10 títulos mais vistos da Netflix em cada dia, baixada do Kaggle
  • 3:10 - pd.read_csv, head() e tail(): primeiras e últimas linhas, porque dado errado costuma aparecer nas pontas
  • 5:00 - shape e display para saber quantas linhas e colunas a base tem
  • 6:00 - Mínimo e máximo da coluna de data para confirmar o período que a base cobre
  • 7:00 - info(), dtypes e isnull().sum(): só Netflix Exclusive tem nulos, cerca de 2.500, e a data está como texto
  • 8:30 - Investigando os nulos: Netflix Exclusive só tem o valor Yes, então o vazio quer dizer que o título não é exclusivo
  • 9:35 - describe() nas colunas numéricas: média de 24 dias no top 10 com desvio padrão de 58
  • 10:25 - Boxplot das colunas numéricas: o ranking fica entre 1 e 10 e os dias no top 10 mostram valores fora da caixa
  • 11:30 - Filtro de Days In Top 10 maior que 100 revela que os outliers são de um único título, Cocomelon
  • 15:30 - value_counts() nos títulos: Cocomelon aparece em 428 dias, à frente de Ozark com 85 e Cobra Kai com 81
  • 17:05 - Gráfico de barras por tipo de conteúdo: séries são a maioria do top 10, seguidas de filmes
  • 18:00 - Viewership Score explicado pela documentação da base: 10 pontos para o 1º lugar, 9 para o 2º e assim por diante

Trechos do vídeo:

  • A análise exploratória vem antes de qualquer modelo: é nela que se descobre quais colunas precisam de tratamento e quais informações são relevantes
  • Valor nulo nem sempre é dado faltando: numa coluna que só registra Yes, o vazio significa não
  • Quando o desvio padrão é muito maior que a média, como 58 contra 24 dias no top 10, a média sozinha não descreve bem a coluna
  • O describe() só calcula estatísticas das colunas numéricas; coluna guardada como texto fica de fora
  • Se os dados não explicam o que uma coluna representa, a resposta está na documentação da base ou em quem a produziu, e não no notebook

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Análise Exploratória no Python

Hoje nós vamos falar sobre análise exploratória impressionadora em Python para te mostrar alguns comandos para facilitar seu entendimento dos dados.

Essa parte é muito importante para que você consiga entender e analisar sua base de dados para que possa dar início ao seu projeto de ciência de dados.

Análise Exploratória dos Dados

Antes de iniciar vale mencionar que pandas para data Science é muito importante, então é necessário que você conheça essa biblioteca e saiba utilizar seus comandos.

Caso não tenha ideia do que é o pandas ou do que se trata essa biblioteca basta clicar aqui que temos um post de como sair do zero no pandas.

Nós vamos utilizar os dados do dataset obtido do Kaggle, que está disponível no site abaixo:

https://www.kaggle.com/datasets/prasertk/netflix-daily-top-10-in-us

Esse dataset usa como base: https://www.the-numbers.com/

Python
import pandas as pd
import datetime as dt

base = pd.read_csv("netflix daily top 10.csv")
Importando bibliotecas e lendo o arquivo em csv
Importando bibliotecas e lendo o arquivo em csv

Vamos iniciar com a importação da biblioteca pandas (que é uma biblioteca de análise de dados) e a biblioteca datetime, que vamos utilizar em um exemplo.

Em seguida vamos importar a nossa base de dados com o comando pd.read_csv do pandas.

Depois de importar a base é importante visualizar esses dados para que você consiga começar a entender o que são esses dados, como eles estão distribuídos nessa base.

Codigo
base.head()

base.tail()

base.shape()
Visualizando as informações da nossa base
Visualizando as informações da nossa base

Para isso vamos utilizar os comandos base.head() e base.tail() para mostrar os 5 primeiros e os 5 últimos dados.

Vamos visualizar também a quantidade de informações que temos com o base.shape. Com isso você já nota que temos 7100 linhas e 10 colunas.

Dessa forma vamos ter uma noção de como os dados estão organizados e se esse padrão se mantém em todo o arquivo.

Aqui você já começa a entender também o que essa base de dados está trazendo, por mais que saiba que estamos verificando uma base com os top 10 filmes do Netflix, temos que entender como isso está sendo feito.

Ícone Ciência de DadosCiência de Dados Impressionador

Se você quiser sair do zero até o nível avançado e aprender absolutamente tudo o que você precisa para usar Ciência de Dados para se destacar no Mercado de Trabalho e poder entrar nas carreiras mais promissoras e desejadas nas empresas, esse curso é pra você.

Começar agoraSeta para a direita
Fundo Ciência de DadosTelas Ciência de Dados
Luz Ciência de Dados

Temos outra forma de visualizar as mesmas informações, só que utilizando um único comando, que é o display(base).

Codigo
display(base)
Outra maneira de visualizar essas informações
Outra maneira de visualizar essas informações

Esse comando já traz todas as informações que vimos com um único comando ao invés de utilizarmos 3 comandos.

Em seguida vamos utilizar a biblioteca datetime só para confirmar qual é a primeira e a última data da nossa base de dados. Assim podemos garantir qual é o nosso período total.

Codigo
inicio = pd.to_datetime(base['As of']).dt.date.min()
print(inicio)

fim = pd.to_datetime(base['As of']).dt.date.max()
print(fim)
Verificando o período de análise
Verificando o período de análise

Agora vamos utilizar um comando muito importante que vai dar as informações gerais da nossa base de dados.

Codigo
base.info()
Verificando valores nulos e tipos de dados
Verificando valores nulos e tipos de dados

Aqui você consegue visualizar as colunas, a quantidade de valores não nulos e o tipo de cada uma dessas informações.

Aqui você já nota que a coluna Netflix Exclusive é a única que possui valores vazios.

Podemos utilizar os comandos dtypes e isnull().sum() para obter essas mesmas informações, mas de uma forma um pouco diferente.

Codigo
base.dtypes

base.isnull().sum()
Verificando os tipos de dados e valores nulos de outra forma
Verificando os tipos de dados e valores nulos de outra forma

Sabendo dessas informações, nós podemos entender melhor esses valores nulos e analisar as informações estatísticas.

Codigo
base['Netflix Exclusive'].value_counts()
Análise Exploratória em Python
Entendendo os valores nulos e analisando as estatísticas

Você pode notar que 4599 valores dessa coluna Netflix Exclusive são com o valor “Yes” (sim). Isso quer dizer que o restante das informações vazias é correspondente ao “Não”.

Com isso você já tem uma noção de como tratar esses dados vazios e já sabe que não é interessante excluir essas informações a não ser que precise fazer uma análise só dos filmes que são exclusivos da Netflix.

Em seguida nós temos as análises estatísticas, onde temos a contagem, média, desvio padrão, mínimo, máximo e os quartis.

Com isso você também já consegue uma análise mais detalhada das informações e sabe que por exemplo os dados em Days In Top 10 tem bastante variação, então só a média não é um parâmetro muito interessante para essa análise.

Para entender melhor as informações nós podemos utilizar o boxplot.

Codigo
base.plot(kind='box',figsize=(10,6),subplots=True);
Análise Exploratória em Python
Gráfico de boxplot

Se você não sabe o que é esse gráfico pode ir na aula de estatística que explicamos um pouco melhor sobre esse gráfico e o que são os outliers (que são as informações fora do padrão).

Agora nós podemos visualizar esses outliers só para entender o que está acontecendo com esses dados fora do padrão.

Codigo
base[base['Days In Top 10'] >= 100]

base_excel = base[base['Days In Top 10'] >= 100]
base_excel.to_excel('Verificar.xlsx')
Análise Exploratória em Python
Analisando outliers

Aqui temos que somente um dos títulos (Cocomelon) ficou no top 10 por muito mais tempo que os outros títulos da nossa base.

Com isso você já começa a entender um pouco mais não só o outlier, mas os seus dados no geral.

Lembrando que com o pandas você ainda consegue exportar esses dados para um arquivo em Excel caso outras pessoas prefiram analisar dessa maneira!

Codigo
base.Title.value_counts()
Análise Exploratória em Python
Analisando as informações

Dá só uma olhada para entender melhor os dados utilizar a contagem dos títulos. Veja que esse Cocomelon aparece 428 vezes e só depois é que temos as séries/filmes que nós achamos que são mais famosos.

Então com essa análise nós mesmos acabamos descobrindo informações novas, pois esse Cocomelon é um desenho para criança, mas você pode nunca ter ouvido falar e ele apareceu diversas vezes no Top 10.

Veja que temos títulos bem conhecidos como Cobra Kai e The Queens Gambit e eles não aparecem tantas vezes.

Até mesmo The Office que muitas pessoas acabam comentando teve somente 1 aparição. Viu como é importante fazer essa análise? Assim você tem o conhecimento do que de fato está acontecendo e o que esses dados representam!

Codigo
base.Type.value_counts().plot(kind='bar');
Análise Exploratória em Python
Contagem dos títulos da nossa base de dados

Aqui temos uma análise dos tipos de conteúdo que temos e como eles estão divididos. Então o que temos de mais relevantes são as séries e os filmes para essa base de dados. Os outros conteúdos acabam não tendo tanto impacto.

Um ponto muito importante na análise exploratória é que você não precisa se prender apenas a sua base de dados para buscar informações.

Nesse caso, nós temos uma coluna chamada Viewership Score, mas em nenhum momento temos informações dessa coluna ou até mesmo de identificar do que se trata.

Então buscamos na fonte da nossa base de dados e descobrimos que esse Score é baseado na posição do Top 10.

Então se um título ficou em primeiro, ele recebe uma nota 10, se ficou em segundo recebe uma nota 9, e assim por diante.

Então agora já sabemos do que se trata e podemos até criar um gráfico para visualizar esses resultados para que você consiga observar que ao longo do tempo esse valor vai diminuindo.

Isso porque temos títulos que estão em alta, mas depois temos títulos novos ou que fazem mais sucesso e assim temos um ciclo desse conteúdo.

Codigo
base['Viewership Score'].hist();

base['Viewership Score'].hist() == base['Viewership Score'].max()]
Análise Exploratória em Python
Gráfico de pontos dos títulos

Aqui temos a visualização de como ficam esses pontos ao longo dos títulos e logo abaixo temos o título que mais teve pontos, que foi também o título que mais ficou no top 10.

Agora você viu a importância de fazer toda essa análise e entender a sua base de dados por completo? Com isso você vai conseguir seguir com o seu projeto de ciência de dados e já vai saber por onde começar quando fizerem alguma solicitação.

Perguntas frequentes

1. Quais comandos do pandas usar para começar uma análise exploratória?

Comece com base.head() e base.tail(), que mostram as 5 primeiras e as 5 últimas linhas, e base.shape para saber quantas linhas e colunas existem. O display(base) entrega essas informações de uma vez só. Depois, base.info() revela o tipo de cada coluna e a quantidade de valores não nulos.

2. Como identificar valores nulos em uma base no Python?

O base.info() mostra quantos valores não nulos cada coluna tem, e o base.isnull().sum() soma diretamente os vazios por coluna. Na base do exemplo, esse teste revela que só a coluna Netflix Exclusive tem vazios, o que muda a decisão sobre excluir ou preencher esses dados.

3. Para que serve o boxplot na análise exploratória?

O boxplot resume a distribuição de cada coluna numérica e deixa visíveis os outliers, ou seja, as informações fora do padrão. Com base.plot(kind=box) você percebe, por exemplo, que a coluna Days In Top 10 varia muito, e que a média sozinha não descreve bem esses dados.

4. Como exportar o resultado da análise para Excel com pandas?

Depois de filtrar o que interessa (por exemplo, apenas os títulos com mais de 100 dias no top 10), use o método to_excel passando o nome do arquivo. O pandas grava a planilha na mesma pasta do código, o que ajuda quando outras pessoas do time preferem analisar no Excel.

Conclusão da Análise Exploratória em Python

Nessa aula eu te mostrei um pouco sobre a análise exploratória e a importância que ela tem nos seus projetos de ciência de dados.

É muito importante não só analisar, mas conhecer as informações que estamos trabalhando, pois isso vai facilitar muito a execução do nosso projeto.

Hashtag Treinamentos

Para acessar outras publicações de Ciência de Dados, clique aqui!


Quer aprender mais sobre Python com um minicurso básico gratuito?