![]() |
Photo by Isaac Smith on Unsplash |
Introdução
Como analista de dados, você precisar analisar os passos que você executa quando encontra um conjunto de dados pela primeira vez. Essa analise deve ser feita logo após ser criado o dataframe. O que você deve se perguntar é: existe alguma rotina que você segue quando encontra um dataset novo? Você sabe quais são os tipos de dados presentes no dataframe? Esse post da inicio a uma série de tutoriais do que fazer quando encontrar um dataset novo. Nessa série vamos responder perguntas comuns sobre coisas que não são simples de fazer com pandas.
Rotina de analise de dados
Não existe um padrão estabelecido do que deve ser feito quando encontramos um dataset pela primeira vez. Uma boa ideia é desenvolver a sua própria rotina do que fazer com um dataset na primeira vez. Assim como temos uma rotina para outras tarefas na nossa vida, como fazer uma lista de compras antes de ir ao supermercado, devemos ter uma rotina para quando obtemos um dataset novo. Essa rotina vai te ajudar nos passos seguintes. Essa rotina pode ser uma lista que coisas que você acha útil fazer com um dataset novo. A lista pode se expandir ou diminuir com o tempo, o que vai definir isso é o beneficio que você vai obter com cada tarefa.
Análise exploratória de dados (AED) é muito utilizada para descrever o processo de analise de conjuntos de dados (datasets). Esse processo não engloba a criação de modelos, mas sim a analise a fim de descobrir as principais características e a melhor forma de visualizar esses dados.
Os processos utilizados na analise exploratória de dados são uteis para entender um conjunto de dados. Esses processos são muito utilizados para descobrir qual é a melhor maneira de criar e treinar modelos de aprendizagem de máquina.
Nesse tutorial vamos aprender uma pequena, mas fundamental, parte da Análise exploratória de dados: A coleta de dados e estatísticas do dataset. Aqui vamos descrever uma lista de tarefas que podem ser uteis quando importamos um dataset pela primeira vez. Você pode adicionar os métodos, que vamos mostrar, na sua própria rotina de analise de dados.
Os métodos, utilizados nesse tutorial, descrevem os dados sobre os dados. Vamos aprender a obter algumas informações básicas, como a quantidade de colunas e seus nomes, tipo de dados da coluna entre outros.
Como começar a analise de dados
Primeiro precisamos de um dataset. Os dataset que vamos utilizar podem ser encontrados aqui. Depois vamos pegar algumas amostras do dataframe com o método sample()
. Para essas amostras serem mais realistas vamos pegar oito amostras de forma aleatória. Utilizando o parâmetro n
para informar a quantidade de amostras e o parâmetro random_state
para informar o número que deve ser utilizado na geração de números aleatórios (pseudoaleatórios).
>>> import pandas as pd >>> animelist = pd.read_csv('animelist.csv') >>> animelist.sample(n=8, random_state=42) anime_id ... ending_theme 12334 12133 ... [] 8366 8619 ... [] 1795 18967 ... [] 7100 36121 ... [] 6050 8157 ... [] 14198 35104 ... [] 8028 33201 ... [] 1730 1005 ... ['"Hearts" by Saori Nishihata'] [8 rows x 31 columns]
Para saber a forma do dataframe vamos chamar o atributo shape
. Esse atributo retorna uma tupla com a forma do dataframe. O primeiro elemento da tupla é o número de linhas e o segundo o número de colunas.
>>> animelist.shape (14478, 31)
Chamando o método info()
conseguimos algumas informações. Esse método nos mostra o nome de cada coluna, a quantidade de elementos não vazios e o tipo de dado de cada coluna. E ainda nos informa a quantidade de memoria que o dataframe está utilizando.
>>> animelist.info() <class 'pandas.core.frame.DataFrame'> RangeIndex: 14478 entries, 0 to 14477 Data columns (total 31 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 anime_id 14478 non-null int64 1 title 14478 non-null object 2 title_english 5724 non-null object 3 title_japanese 14443 non-null object 4 title_synonyms 8937 non-null object 5 image_url 14382 non-null object 6 type 14478 non-null object 7 source 14478 non-null object 8 episodes 14478 non-null int64 9 status 14478 non-null object 10 airing 14478 non-null bool 11 aired_string 14478 non-null object 12 aired 14478 non-null object 13 duration 14478 non-null object 14 rating 14478 non-null object 15 score 14478 non-null float64 16 scored_by 14478 non-null int64 17 rank 12904 non-null float64 18 popularity 14478 non-null int64 19 members 14478 non-null int64 20 favorites 14478 non-null int64 21 background 1057 non-null object 22 premiered 4096 non-null object 23 broadcast 4271 non-null object 24 related 14478 non-null object 25 producer 8288 non-null object 26 licensor 3373 non-null object 27 studio 8544 non-null object 28 genre 14414 non-null object 29 opening_theme 14478 non-null object 30 ending_theme 14478 non-null object dtypes: bool(1), float64(2), int64(6), object(22) memory usage: 2.1+ MB
Se você estiver precisando saber as estatísticas básicas do dataframe é só chamar o método describe()
. Esse método nos fornece as estatísticas básicas de cada coluna. Com o parâmetro include especificamos de quais colunas queremos as estatísticas.
>>> import numpy as np >>> animelist.describe(include=np.number) anime_id episodes ... members favorites count 14478.000000 14478.000000 ... 1.447800e+04 14478.000000 mean 17377.229866 11.308399 ... 2.296640e+04 311.649606 std 13165.315011 43.443451 ... 7.498136e+04 2615.554211 min 1.000000 0.000000 ... 0.000000e+00 0.000000 25% 4389.250000 1.000000 ... 2.450000e+02 0.000000 50% 15135.000000 1.000000 ... 1.679500e+03 2.000000 75% 31146.500000 12.000000 ... 1.037900e+04 23.000000 max 37916.000000 1818.000000 ... 1.456378e+06 106895.000000 [8 rows x 8 columns] >>> animelist.describe(include='O') title title_english ... opening_theme ending_theme count 14478 5724 ... 14478 14478 unique 14477 5606 ... 4328 5458 top Hinamatsuri Cyborg 009 ... [] [] freq 2 4 ... 9784 8807 [4 rows x 22 columns]
Esses são alguns métodos que você pode adicionar a lista do que fazer quando tiver um dataset novo. Aumente a lista com os métodos que você achar necessário ou remova algum que não faz diferença pra você, mas sempre crie uma rotina dos primeiros passos com um dataset novo.
Referência:
Método read_csv()
Método sample()
Atributo shape
Método info()
Método describe()