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()etail(): primeiras e últimas linhas, porque dado errado costuma aparecer nas pontas - 5:00 -
shapeedisplaypara 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(),dtypeseisnull().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/
import pandas as pd
import datetime as dt
base = pd.read_csv("netflix daily top 10.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.
base.head()
base.tail()
base.shape()
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.
Temos outra forma de visualizar as mesmas informações, só que utilizando um único comando, que é o display(base).
display(base)
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.
inicio = pd.to_datetime(base['As of']).dt.date.min()
print(inicio)
fim = pd.to_datetime(base['As of']).dt.date.max()
print(fim)
Agora vamos utilizar um comando muito importante que vai dar as informações gerais da nossa base de dados.
base.info()
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.
base.dtypes
base.isnull().sum()
Sabendo dessas informações, nós podemos entender melhor esses valores nulos e analisar as informações estatísticas.
base['Netflix Exclusive'].value_counts()
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.
base.plot(kind='box',figsize=(10,6),subplots=True);
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.
base[base['Days In Top 10'] >= 100]
base_excel = base[base['Days In Top 10'] >= 100]
base_excel.to_excel('Verificar.xlsx')
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!
base.Title.value_counts()
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!
base.Type.value_counts().plot(kind='bar');
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.
base['Viewership Score'].hist();
base['Viewership Score'].hist() == base['Viewership Score'].max()]
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!


