Análise de Dados de Python Com Pandas
Análise de Dados de Python Com Pandas
Descrição
Propósito
Preparação
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 1/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
Objetivos
Módulo 1
Módulo 2
Módulo 3
Módulo 4
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 2/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
Introdução
A análise de dados é fundamental para a inicialização de qualquer
projeto de sistemas de informação, uma vez que nos trará insights
de como melhor desenhar o processo, além do que nos foi
entregue no levantamento de requisitos.
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 3/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
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.
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 4/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
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.
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 5/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
Grupo Monty Python.
Atenção
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 6/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
Python
content_copy
Ou
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 7/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
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.
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 8/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
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.
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 9/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
Terminal content_copy
Terminal
content_copy
Terminal
content_copy
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 10/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
Terminal
content_copy
Terminal
content_copy
Comentário
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 11/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
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
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 12/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
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
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 13/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
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.
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 14/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
Questão 1
A start; quit.
B startvenv; !venv.
C venv; ~venv.
D venv; deactivate.
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 15/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
E activate; deactivate.
Questão 2
A Comparação
B Atribuição
C Laço
D Condicional
E Escopo
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 16/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
Coleta de dados.
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 17/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
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
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 18/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
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
Atenção
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 20/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
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.
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 21/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
A fórmula é:
d_observado
(d_max − d_min)
Python content_copy
Atenção
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 22/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
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
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 23/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
Python
content_copy
Python content_copy
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 24/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
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.
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 25/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
Questão 1
A deletar os dados.
B embaralhar os dados.
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 26/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
D atualizar os dados.
Questão 2
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 27/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
E Rotação dos dados nulos ou faltantes.
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
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 28/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
Python
content_copy
Terminal content_copy
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 29/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
Python content_copy
Terminal content_copy
Python content_copy
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 30/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
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
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 31/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
‘viper’
A primeira com apenas uma coluna.
‘viper’, ‘sidewinder’
A segunda com duas colunas.
Python content_copy
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 32/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
description Print 1
description Print 2
description Print 3
description Print 4
description Print 5
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.
Python content_copy
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 34/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
Ou
Python
content_copy
Python content_copy
Python content_copy
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 35/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
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,
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 36/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
Python
content_copy
Python content_copy
Comentário
O join é feito a partir de um dos DataFrames, assim como o merge, mas
ele depende do index, e a junção é feita no index padrão.
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 37/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
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
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 38/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
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.
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 39/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 40/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
Questão 1
Questão 2
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 41/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 42/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
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 categóricos
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 43/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
Dados temporais
Atenção
Podemos ter dados categóricos expressos por números, por exemplo,
notas de provas significando conceitos (que podem ser substituídos
pelo sistema de letras A, B, C, D, F) e ordinais representando categorias
de posição ou ordem. Podem ocorrer dados numéricos que, quando
estratificados, passam a ser categóricos como idade, temperatura etc.
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
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 44/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 45/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
Gráfico de dispersão de larguras e comprimentos de sépala de flores (data.iris) - resultado da
execução do código anterior.
Python
content_copy
Comentário
Como podemos ver, o gráfico de barras é muito parecido com o
histograma; a diferença é que o gráfico de barras mostra a contagem e
proporções de dados categóricos, ou seja, o eixo X será de dados
categóricos e o Y representará a contagem (podendo inverter os eixos
quando estamos olhando gráficos de barras orientados
horizontalmente).
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 46/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
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
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 47/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
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
Temos que tomar cuidado para os valores únicos dessas agregações
não prejudicarem a visualizaçã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.
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 48/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
Terminal
content_copy
Python content_copy
Por exemplo, caso você queira algo diferente, use um bubble chart:
Python content_copy
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 49/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
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.
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 50/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
Questão 1
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 51/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
C É uma biblioteca para manipulação de dados do
Python em DataFrames.
Questão 2
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 52/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
Considerações finais
Como vimos, a linguagem Python pode ser uma ferramenta fundamental
para a análise de dados. Esta, por sua vez, é essencial para iniciarmos
bem qualquer projeto de um sistema de informação na área de
aprendizado de máquina e ciência de dados.
headset
Tópicos relevantes em análise de
dados no Python
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 53/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
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.
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 54/55
27/05/2024, 09:06 Análise de dados de Python com Pandas
Download material
Relatar problema
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 55/55