Eu tenho usado R há algum tempo. Sem dúvida, é a minha ferramenta favorita para manipulação, limpeza e visualização de dados, pelo menos até o momento. No entanto, em alguns momentos eu preciso de uma descrição rápida do perfil (frequência dos valores e estatísticas descritivas) dos dados que tenho em mãos. Até agora eu não encontrei uma ferramenta mais eficiente para fazer isso do que a biblioteca em python pandas-profiling.
Usando a pandas-profiling
Precisaremos de poucas linhas para a descrição completa dos dados. Aqui, utilizaremos um dataset disponibilizado pela galera do TidyTuesday. Esse dataset contém obervações de explosões nucleares que aconteceram no mundo.
Primeiro, carregamos as bibliotecas necessárias:
import pandas as pd
import numpy as np
import pandas_profiling
Precisamos baixar e ler o dataset:
link = 'https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2019/2019-08-20/nuclear_explosions.csv'
df = pd.read_csv(link)
Breve checagem dos dados.
df.head()
## date_long year id_no country ... yield_upper purpose name type
## 0 19450716 1945 45001 USA ... 21.0 WR TRINITY TOWER
## 1 19450805 1945 45002 USA ... 15.0 COMBAT LITTLEBOY AIRDROP
## 2 19450809 1945 45003 USA ... 21.0 COMBAT FATMAN AIRDROP
## 3 19460630 1946 46001 USA ... 21.0 WE ABLE AIRDROP
## 4 19460724 1946 46002 USA ... 21.0 WE BAKER UW
##
## [5 rows x 16 columns]
A criação do perfil dos dados precisa apenas de uma linha de código, assim:
profile = df.profile_report(title='Explosões nucleares pelo mundo')
A visualização completa do relatório gerado pode ser feita diretamente no Jupyter Notebook. Podemos salvar o relatório e visualizá-lo no navegador. Usaremos essa segunda opção:
profile.to_file(output_file="perfil_dados_explosoes_nucleares.html")
Veja o relatório completo aqui.