Análise de Dados de Python Com Pandas
Análise de Dados de Python Com Pandas
Análise de dados de
Python com Pandas
Prof. Fernando Cardoso Durier da Silva
Descrição
Análise e preparação de dados, incluindo pré-
processamento e alimentação do processo, e
apresentação visual de resultados usando
bibliotecas da linguagem Python.
Propósito
Compreender a análise de dados em Python
é fundamental para o cientista de dados, por
ser uma das linguagens mais utilizadas para
esse tipo de tarefa, não só pela
automatização, mas também pela robustez
de suas bibliotecas de apoio.
Preparação
Para a compreensão e reprodução dos
exemplos, é imprescindível ter instalado, em
sua máquina de estudos, o Python na versão
3.8 ou superior, as bibliotecas Pandas,
Numpy e Plotly. Será necessária também
uma ferramenta para execução de
notebooks, como Jupyter, que pode ser
instalado como uma biblioteca do Python.
Nesse contexto, notebooks são arquivos com
extensão IPYNB que contêm documentos
gerados pelo ambiente de desenvolvimento
interativo, usados por cientistas de dados
que trabalham com a linguagem Python.
Objetivos
Módulo 1
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 1/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
Acessar módulo
Módulo 2
Acessar módulo
Módulo 3
Acessar módulo
Módulo 4
Acessar módulo
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 2/50
19/04/2024, 07:58 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/50
19/04/2024, 07:58 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/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
sms_failed
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/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
Grupo Monty Python.
report_problem
Atenção
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 6/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
Python
content_copy
Ou
Python
content_copy
Ou
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 7/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
Absoluto.
Agora você deve estar ainda mais intrigado sobre a razão de um arquivo
__init__.py vazio! Sabe o por quê?
forum
Resposta
forum
Resposta
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 8/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
É simples, por meio do gerenciador de
pacotes do Python, o pip.
report_problem
Atenção
Terminal
content_copy
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 9/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
digitar:
Terminal
content_copy
Terminal
content_copy
Terminal
content_copy
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 10/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
Terminal
content_copy
assignment_ind
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
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 11/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
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.
assignment_ind
Comentário
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.
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 12/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
Exemplo de Pandas DataFrame disponível no site geeksforgeeks.org no artigo Python Pandas
Dataframe.sample() de Kartikaybhutanios.
assignment_ind
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.
playlist_play
Vem que eu te explico!
Os vídeos a seguir abordam os assuntos mais relevantes do conteúdo
que você acabou de estudar.
Ativos de dados
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 13/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
emoji_events
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 14/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
Questão 1
A start; quit.
B startvenv; !venv.
C venv; ~venv.
D venv; deactivate.
E activate; deactivate.
Responder
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# 15/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
Responder
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 16/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
Coleta de dados.
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 17/50
19/04/2024, 07:58 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.
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.
assignment_ind
Comentário
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 18/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
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.
report_problem
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
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 19/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
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)
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 20/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
fazem varreduras em sites, ou em dados semiestruturados como
notícias e tweets por meio do BeautifulSoup e Scrapy.
Python
content_copy
report_problem
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.
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 21/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
Python
content_copy
Python
content_copy
Python
content_copy
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 22/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
assignment_ind
Comentário
Ainda há a possibilidade de leitura por URL,
em que, no lugar de passarmos o caminho
de diretórios local da máquina, passamos o
caminho do arquivo no sistema on-line, que
será transferido para o projeto Python
seguindo um protocolo FTP.
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.
playlist_play
Vem que eu te explico!
Os vídeos a seguir abordam os assuntos mais relevantes do conteúdo
que você acabou de estudar.
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 23/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
Módulo 2 - Vem que eu te explico!
Regularização de dados
emoji_events
objetivos.
Vamos praticar alguns conceitos?
Questão 1
A deletar os dados.
B embaralhar os dados.
D atualizar os dados.
Responder
Questão 2
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 25/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
Responder
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 26/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
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.
assignment_ind
Comentário
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 27/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
seguir:
Terminal
content_copy
Python
content_copy
Terminal
content_copy
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 28/50
19/04/2024, 07:58 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.
assignment_ind
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# 29/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
‘viper’
‘viper’, ‘sidewinder’
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 30/50
19/04/2024, 07:58 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
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 31/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
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
Ou
Python
content_copy
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 32/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
Python
content_copy
Ou
Python
content_copy
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 33/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
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
Python
content_copy
assignment_ind
Comentário
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 34/50
19/04/2024, 07:58 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
assignment_ind
Comentário
A operação apply, que é um método do
DataFrame e das series, nada mais é do que
o equivalente à função map de outras
linguagens como Java e Javascript, em que
definimos uma função e a passamos nos
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 35/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
componentes de uma lista a fim de modificá-
la.
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.
playlist_play
Vem que eu te explico!
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 36/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
Groupby e apply
emoji_events
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 37/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
Questão 1
Responder
Questão 2
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 38/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
Responder
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 39/50
19/04/2024, 07:58 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.
report_problem
Atenção
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 40/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
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# 41/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
exemplo a seguir:
Python
content_copy
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 42/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
assignment_ind
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.
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 43/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
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.
report_problem
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
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 44/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
enxergar dados com mais detalhes, bem como operações de zoom,
pane, export etc.
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# 45/50
19/04/2024, 07:58 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.
playlist_play
Vem que eu te explico!
Os vídeos a seguir abordam os assuntos mais relevantes do conteúdo
que você acabou de estudar.
Tipos de visualizações
Biblioteca Plotly
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 46/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
emoji_events
Questão 1
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 47/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
Para que serve o Plotly?
Responder
Questão 2
Responder
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 48/50
19/04/2024, 07:58 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
Ouça no podcast a entrevista sobre análise de dados no
Python.
00:00 05:00
speed
1x
Explore +
Para dar sequência ao seu estudo, teste mais formas de gerenciar o
Python e suas versões com o Pyenv.
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 49/50
19/04/2024, 07:58 Análise de dados de Python com Pandas
Além do Plotly, temos o matplotlib e o seaborn, sendo recomendada a
pesquisa dessas bibliotecas de visualização de dados.
Referências
AMARAL, F. Aprenda mineração de dados: teoria e prática. Rio de
Janeiro: Alta Books, 2016.
Download material
Relatar problema
https://stecine.azureedge.net/repositorio/00212ti/02260/index.html?brand=estacio# 50/50