Análise de Dados de Python Com Pandas
Análise de Dados de Python Com Pandas
Descrição
Propósito
Preparação
Módulo 1
Módulo 2
Módulo 3
Módulo 4
Ligando os pontos
Você sabe como identificar os componentes e a sintaxe do Python para
análise de dados? É muito provável que você já tenha escutado sobre a
importância gigantesca do Python para fazer análise de dados, mas
quais são os passos para iniciar esse processo? Para respondermos a
essas perguntas, vamos fazer uma breve análise.
Questão 1
Questão 2
D
É capaz de integrar soluções de ciência de dados
com aplicações web.
Questão 3
Chave de respostaexpand_more
Esse é um dos principais objetivos do Python, que foi idealizado para ser
parecido com o inglês de modo que, quando qualquer pessoa fosse ler
os códigos fontes, poderia entender facilmente, independentemente de
ser especialista.
Curiosidade
Por mais que o símbolo da linguagem seja o da serpente constritora não
venenosa Python (Píton), a origem do nome da linguagem, na realidade,
refere-se ao grupo humorístico britânico Monty Python, criadores da
série cômica o Circo Voador de Monty Python (Monty Python's Flying
Circus). Em contrapartida, os comediantes resolveram homenagear Lord
Montgomery (Monty), oficial do exército britânico, e queriam uma
palavra evasiva como Python, aqui sim se referindo à serpente.
Atenção
Diferentemente de linguagens de médio nível como C e Java, Python não
precisa declarar o tipo de suas variáveis, o que se alinha também com o
objetivo de imitar o idioma inglês, mas, ainda assim, seus tipos são
fortes, ou seja, não sofrem coerções.
Python
content_copy
Ou
Python
content_copy
Ou
Python
content_copy
Absoluto.
Agora você deve estar ainda mais intrigado sobre a razão de um arquivo
__init__.py vazio! Sabe o por quê?
Resposta
Quando importamos um módulo, é como se importássemos uma classe
para outra parte do projeto, e o __init__.py é executado pelo motor do
Python para atrelar os objetos pelo módulo declarado ao namespace
(“domínio”) do módulo. Em outras palavras, podemos entender como o
construtor do pacote/módulo ali declarado.
Atenção
É importante registrar a lista de bibliotecas para que outras pessoas que
tiverem acesso ao projeto possam rodá-lo em suas máquinas. E isso
pode ser feito por meio do arquivo requirements.txt, um arquivo de texto
que contém as dependências do projeto.
Para isso, basta digitar o comando:
Terminal
content_copy
Terminal
content_copy
Terminal
content_copy
Para sair, basta digitar:
Terminal
content_copy
Terminal
content_copy
Comentário
Para abrir um servidor local de Jupyter Notebook, basta digitarmos no
terminal “jupyter notebook” na pasta do projeto em questão e pronto, o
servidor será levantado e automaticamente o browser abrirá na IDE do
Jupyter Notebook. Então, você poderá criar notebooks, que são scripts
em células de Python, muito utilizados para prototipação e análises
exploratórias.
Ativos de dados
Falaremos agora dos dados. Afinal, qualquer sistema de informação tem
como entrada dados que serão processados pelos seus programas até
saírem como informação relevante. No caso de projetos em Python, os
dados podem vir externamente por meio de captação (scraping) ou de
artefatos de dados que nada mais são do que planilhas, textos, entre
outros arquivos que são usados localmente mesmo.
Ativos de dados.
A fim de lidarmos com os dados de forma elegante, deve ser criada uma
pasta no nível da raiz do projeto, para armazenamento dos arquivos; por
convenção, podemos chamá-la de assets (ativos). Tal pasta pode ainda
ser subdividida por categorização preestabelecida dos ativos de dados.
Essa subdivisão é muito comum em projetos de FrontEnd (projetos de
interface gráfica, principalmente de websites), em que os
desenvolvedores guardam ícones e outros dados estáticos.
Comentário
Os ativos de dados podem ser usados para servir de base de dados
temporária ou de testes/experimentação de certos sistemas, ou
também como recursos que alimentam bibliotecas importadas, por
exemplo, licenças de software.
Biblioteca Pandas
A manipulação de dados em Python, em sua esmagadora maioria, é
feita com DataFrames, uma vez que são estruturas muito mais cômodas
e robustas de se trabalhar do que matrizes. Antes de falarmos dos
DataFrames em profundidade, precisamos explicar o Pandas.
Comentário
Os DataFrames são justamente esses painéis de dados, mas podemos
encará-los como tabelas para fins de abstração. São muito utilizados
em projetos de análise de dados como criação de dashboards, scripts
de análise de dados e aplicações de aprendizado de máquina.
video_library
Introdução aos componentes e à
sintaxe de Python
No vídeo a seguir, abordamos os principais componentes e a sintaxe
básica da linguagem Python para a análise de dados.
Falta pouco para atingir seus objetivos.
Questão 1
A start; quit.
B startvenv; !venv.
C venv; ~venv.
D venv; deactivate.
E activate; deactivate.
A Comparação
B Atribuição
C Laço
D Condicional
E Escopo
Ligando os pontos
Você sabe preparar dados para análise no Python? Que estratégia você
adotaria diante da necessidade de preparar os dados para serem
utilizados por outras aplicações de análise? Vamos entender melhor as
questões que envolvem esse processo.
Uma expressão bastante comum hoje em dia é que “os dados são o
novo petróleo”. O objetivo é destacar a importância dos dados para dar
suporte à tomada de decisão. Mas esse processo não é apenas de
carregar os dados de uma fonte, como um arquivo ou tabela de banco
de dados, e começar a utilizá-los. É preciso investigar se os dados estão
em um formato adequado, se não há algum tipo de perda e se eles são
coerentes entre si.
Questão 1
A
Utilizar um programa utilitário para investigar os
dados.
Questão 2
Questão 3
Chave de respostaexpand_more
Coleta de dados.
Existe ainda uma diferença no que tange à obtenção dos dados em si,
classificados como dados primários e secundários. Vejamos a seguir.
Dados primários
O que são:
São aqueles coletados de primeira mão, ou seja, dados que ainda
não foram publicados, autênticos ou inéditos.
Vantagens:
São dados puros, coletados para a resolução de um problema
específico e, se necessário, podem ser coletados novamente a
qualquer momento para aumentar a quantidade.
Dados secundários
O que são:
São aqueles dados que já foram publicados de alguma forma, ou
seja, sofreram alguma interferência humana. Por exemplo, ao
fazermos a revisão de literatura em qualquer estudo, estamos
revisando dados secundários.
Vantagens:
Economia de tempo em não ter que desenvolver um sistema de
coleta, menor custo e delegação de responsabilidade (em relação
aos dados) do profissional para o dono dos dados originais.
Comentário
Dados faltantes ou nulos em bases grandes (por volta da ordem de
grandeza de 10.000 registros ou mais) podem ser resolvidos ignorando
o registro todo, ou seja, removendo-o da base, se a proporção de nulos
não for expressiva (não passar de 10% da quantidade de registros). Essa
estratégia é comum para bases grandes, pois a remoção desses
registros nulos não será tão danosa ao processo de treinamento.
Atenção
Para resolver o problema de dados repetidos, é sempre útil estudar os
metadados do conjunto de dados, se estiverem disponíveis, ou estudar a
origem deles.
Regularização de dados
Os dados coletados, além de poderem ter sido corrompidos ou
simplesmente estar faltando, podem estar com ruídos, ou pelo menos
com pontos fora da curva, os chamados outliers. Por exemplo, na série
[1,1,2,3,4,5,6,100,7,8,9,50], podemos dizer que 50 e 100 são outliers, uma
vez que são muito distantes do restante. Tal perturbação pode causar
problemas nos processamentos do sistema sobre esse conjunto,
levando-o a demonstrar comportamentos indesejados.
Ponto fora da curva. Podemos ver que o ponto se distancia demais da média e das variâncias
esperadas do boxplot.
A fórmula é:
d_observado
(d_max − d_min)
Python
content_copy
Atenção
A função de leitura do Pandas é tão poderosa que pode ler arquivos não
convencionais como lista de dicionários, bastando utilizar o método
read_json, por exemplo, que tem um atributo específico chamado orient,
que vem de orientação, uma vez que a lista de dicionários pode ser
passada como record, ou seja, por vetor de registros, ou, ao contrário,
split, que é vetor de valores de coluna variável.
Python
content_copy
Python
content_copy
Python
content_copy
Assim como é possível ler os arquivos, também é possível persistirmos
com eles; o método usado para isso é to_csv, to_excel, to_json etc.
Deve-se dar especial atenção à persistência, pois em casos como a
exportação dos dados no formato de lista de dicionários, ou JSON
Array, o padrão de orientação é importantíssimo porque interfere na
retrocompatibilidade com outros sistemas que compartilhem os dados.
Python
content_copy
Comentário
video_library
Preparação de dados para análise no
Python
As técnicas de preparação de dados para análise no Python são
abordadas no vídeo a seguir.
Falta pouco para atingir seus objetivos.
Questão 1
A deletar os dados.
B embaralhar os dados.
D atualizar os dados.
Questão 2
Quais devem ser os primeiros passos que esse empreendedor deve dar
para alcançar esse objetivo?
Questão 1
Questão 2
Questão 3
Você já conhece a importância da manipulação dos dados. Que
sequência você faria para coletar dados de arquivos csv e manipulá-los
com o Python? Descreva essa sequência de forma suscinta.
Chave de respostaexpand_more
DataFrames e tabelas
Uma característica interessante na estrutura de dados de DataFrame ou
dados em painel é o fato de poderem ser criados a partir de
praticamente qualquer outra estrutura. Podemos criar Pandas
DataFrames a partir de arquivos CSV, Excel, listas de dicionários,
matrizes, junções de listas etc.
Comentário
As tabelas, por mais que tenham essa característica de DataFrames, são
muito similares às estruturas que conhecemos nos bancos de dados,
como colunas, por exemplo, sendo que cada coluna tem um tipo próprio,
por exemplo object, que é o padrão de tipo de dados para strings, ou o
equivalente a varchar. A outra semelhança é o index, que serve para
marcar cada linha do DataFrame e ordenar os dados, assim como a
estrutura de mesmo nome nas tabelas dos bancos de dados SQL.
Python
content_copy
Terminal
content_copy
Python
content_copy
O describe resulta na descrição de estatísticas bem básicas, por
exemplo, a contagem de cada coluna (count), quantos valores únicos de
cada variável (unique) e quantas categorias, bem como o primeiro
registro (top) e a frequência (freq.).
Terminal
content_copy
Python
content_copy
Manipulação de dados em
DataFrames
Como mencionamos, os DataFrames são similares a tabelas, como as
dos bancos de dados convencionais PostgreSQL, MySQL, DB2 etc. Tais
estruturas contam com operações muito parecidas com as de projeção,
seleção, deleção e junção.
Comentário
Quando fazemos uma projeção ou uma seleção, o que queremos é criar
um subconjunto dos dados originais. Tal operação é realizada na
linguagem SQL pelo comando SELECT, enquanto para os DataFrames
podemos fazer o mesmo com os métodos loc, iloc e query.
Python
content_copy
‘viper’
A primeira com apenas uma coluna.
‘viper’, ‘sidewinder’
A segunda com duas colunas.
description Print 1
description Print 2
description Print 3
description Print 4
description Print 5
O i i á j ã di ã
O quinto print nos trará a projeção com a condição
de que o valor das células seja par.
Python
content_copy
Por fim, temos o jeito de fazer seleções e projeções por queries. Assim
como nos bancos de dados SQL, isso é bastante intuitivo. No primeiro
print, temos uma query que retorna dados cujo valor da dimensão A é
maior do que o da dimensão de B. Já a segunda query é uma igualdade,
em que desejamos os dados cujo valor da dimensão B seja igual ao da
dimensão 'C C' (repare que, dentro da query, o que for textual, seja valor
ou dimensão, tem de ser declarado com o acento crase (`) ). E, por fim,
um último jeito de filtrar é passando a referência da coluna no colchete
do DataFrame.
Ou
Python
content_copy
Python
content_copy
Python
content_copy
Ou
Python
content_copy
Python
content_copy
Esse exemplo realiza a junção entre as séries pelos seus indexes. Basta
definir o axis=1, pois normalmente o concat, quando não declarada a
axis ou usando axis=0, fará uma união entre os dados. Após um concat,
pode ser feito um reset_index também, mas podemos encurtar esse
passo declarando dentro do pd.concat() o parâmetro ignore_index=True.
Python
content_copy
Comentário
Groupby e apply
Agora veremos como fazer agregações em DataFrames, que são as
operações mais utilizadas para a análise dos dados, bem como para a
extração de estatísticas básicas, possibilitando uma compreensão
holística do conjunto de dados. Ao agregar dados, estamos reduzindo o
conjunto e resumindo-o a métricas, estatísticas e agrupamentos.
Python
content_copy
Comentário
Python
content_copy
video_library
Manipulação de dados com Pandas
No vídeo a seguir, abordamos as técnicas de manipulação de dados
para análise no Python.
Falta pouco para atingir seus objetivos.
Questão 1
Qual a função do index de um DataFrame?
Questão 2
Ligando os pontos
Você sabe como aplicar a visualização de dados no Python?
Conseguiria implementar uma solução em que o usuário pudesse
visualizar resultados e identificar oportunidades? Vamos entender
melhor esse conceito.
A comunicação é um aspecto fundamental para dar suporte à tomada
de decisão. Sem ela, podemos obter os melhores resultados, mas,
dificilmente, eles serão colocados em prática, pois os responsáveis por
executá-los precisam estar convencidos de que dispõem das melhores
opções.
Questão 2
Questão 3
Chave de respostaexpand_more
Tipos de dados
No mundo de Big Data, temos dados os mais variados possíveis, que
isoladamente podem não significar muito, mas com o devido
processamento, podemos extrair informação útil e conhecimento para
tomada de decisões. Neste módulo, para fins de visualização de dados,
vamos nos ater à seguinte classificação: dados numéricos, dados
categóricos e dados temporais.
Dados numéricos
Dados temporais
Atenção
Tipos de visualizações
Para cada tipo de dado, temos visualizações mais adequadas ou que
ressaltam melhor o significado por trás do conjunto de dados.
Python
content_copy
Histograma da distribuição de dados de comandas de restaurante (data.tips) - resultado da
execução do código anterior.
Python
content_copy
Python
content_copy
Comentário
Python
content_copy
Gráfico de pizza mostrando a proporção dos valores distintos de dias da semana no conjunto de
comandas (data.tips) - resultado da execução do código anterior.
Python
content_copy
Expectativa de vida ao longo dos anos para Austrália e Nova Zelândia (data.gapminder) -
resultado da execução do código anterior.
Atenção
Biblioteca Plotly
Para elaborarmos todas essas visualizações escolhemos trabalhar com
o Plotly, uma biblioteca de visualização do Python muito adequada ao
ambiente do Jupyter Notebook, uma vez que suas visualizações são
interativas, podendo passar com o mouse por cima dos gráficos e
enxergar dados com mais detalhes, bem como operações de zoom,
pane, export etc.
Terminal
content_copy
E para usarmos os métodos nos nossos códigos, precisamos importar a
biblioteca:
Python
content_copy
Por exemplo, caso você queira algo diferente, use um bubble chart:
Python
content_copy
Gráfico de bolhas da expectativa de vida pela renda per capita agregado por país, em que o
tamanho da bolha é dado pela população do país - resultado da execução do código anterior.
video_library
Visualização de dados no Python
No vídeo a seguir, abordamos as técnicas de visualização de dados para
análise no Python.
Falta pouco para atingir seus objetivos.
Questão 1
Questão 2
headset
Tópicos relevantes em análise de
dados no Python
Ouça no podcast a entrevista sobre análise de dados no Python.
Explore +
Para dar sequência ao seu estudo, teste mais formas de gerenciar o
Python e suas versões com o Pyenv.
Referências
AMARAL, F. Aprenda mineração de dados: teoria e prática. Rio de
Janeiro: Alta Books, 2016.
Relatar problema