Escolar Documentos
Profissional Documentos
Cultura Documentos
Sumário
1. Apresentação do componente curricular ................................................. 4
2. Programa .................................................................................................. 6
3. Introdução ................................................................................................. 7
5. Python ..................................................................................................... 14
6. NumPy .................................................................................................... 27
9. Síntese .................................................................................................... 34
Este componente visa fornecer a você uma introdução às linguagens e aos ambientes de
programação mais empregados para Ciência de Dados.
Por que essas linguagens, e não linguagens como Java ou C? A Ciência de Dados tem
algumas características que a diferem do desenvolvimento tradicional de aplicações. A
integração com recursos para Web ou para aplicações Mobile, por exemplo, é essencial
para o desenvolvimento de aplicações, mas tem um papel bastante secundário em
Ciência de Dados. Além disso, aplicações tradicionais são voltadas, em muitos casos,
para o processamento transacional, empregando quantidades relativamente pequenas
de dados. Por outro lado, script languages e tipos de dados fracos são vantajosos quando
queremos experimentar diferentes execuções para exploração de dados que não temos
clareza ainda de tipos e valores. Isso também norteará nosso curso, pois estaremos
focados nos recursos das linguagens Python e R para desenvolver análises e ciência de
dados, havendo muitos outros recursos que não exploraremos aqui.
esteja familiarizado com alguns nomes como SAS, PowerBI, Tableau, Qlik, SPSS etc. e,
não obstante o uso bastante comum dessas soluções, elas são bastante proprietárias, e o
4
Trilha de Aprendizagem 1 - Introdução à Programação Python
Por último, há também outras linguagens como Scala, Julia e o próprio Java que podem
uso de uma solução ou outra deve ser analisada caso a caso sem, necessariamente,
assumirmos uma ou outra como melhor e, na maior parte dos casos, empregaremos
muitas soluções conjuntas.
Vamos lá?
5
Trilha de Aprendizagem 1 - Introdução à Programação Python
2. Programa
Para que tenha uma ideia geral dos conteúdos deste componente, seguem abaixo os
assuntos que serão trabalhados em cada trilha.
calor.
calor.
6
Trilha de Aprendizagem 1 - Introdução à Programação Python
3. Introdução
7
Trilha de Aprendizagem 1 - Introdução à Programação Python
instalação de softwares necessária, e que ainda fornece acesso a recursos de GPU para
Esse será nosso ambiente preferencial de programação Python e, mais adiante, ao estudar
a linguagem R, você encontrará um ambiente semelhante para o desenvolvimento em R.
• Compartilhamento fácil.
8
Trilha de Aprendizagem 1 - Introdução à Programação Python
Notebooks Python
• celulas de Código;
• celulas de Texto; e
Se você estiver lendo esse documento à partir de um notebook Python o documento que
você está lendo não será uma página da Web estática, mas sim um ambiente interativo
chamado notebook Colab que permite escrever e executar código.
Por exemplo, aqui está uma célula de código com um breve script Python que calcula
Células de código
9
Trilha de Aprendizagem 1 - Introdução à Programação Python
Como você pode executar qualquer célula a qualquer momento, a ideia de execução
10
Trilha de Aprendizagem 1 - Introdução à Programação Python
Células de texto
As células de texto são criadas no formato Markdown. Se você estiver acessando este
conteúdo à partir de um notebook Python clique duas vezes no texto para editar uma
célula e você pode querer empregar barra de ferramentas para formatá-lo ou, quando
estiver mais familiarizado com a notação Markdown, escrever diretamente a formatação.
Experimente abaixo.
11
Trilha de Aprendizagem 1 - Introdução à Programação Python
são salvas automaticamente! RECOMENDO que você empregue a opção Arquivo > na
barra de ferramentas para carregar ou salvar seu notebook Python em um arquivo .ipynb.
12
Trilha de Aprendizagem 1 - Introdução à Programação Python
Projetos mais complexos que envolvem programas longos e em grande número podem se
13
Trilha de Aprendizagem 1 - Introdução à Programação Python
5. Python
Python é uma linguagem bastante poderosa e com muitos recursos. Nessa introdução
de Python, veremos apenas um conjunto mínimo de recursos, pois existem diversas boas
fontes online e livros de introdução ao Python.
Imports básicos
Variáveis e Atribuições
O Python implementa tipos fracos, isto é, você não precisa declarar uma variável antes
14
Trilha de Aprendizagem 1 - Introdução à Programação Python
NumPy functions
As funções básicas estão disponíveis nativamente, mas, para muitas funções matemáticas,
como funções trigonométricas, randomização de valores e constantes – como o e
–, é necessário recorrer a bibliotecas numéricas como o NumPy e math. Em geral,
empregaremos o NumPy e veremos mais sobre essa biblioteca adiante.
15
Trilha de Aprendizagem 1 - Introdução à Programação Python
Strings
As strings em Python são como arrays de caracteres e são estruturas imutáveis. Isso
um array de string.
SElas iniciam por 0 mas, em Python, o limite superior indicará um valor < do caracter que
será exibido e não
16
Trilha de Aprendizagem 1 - Introdução à Programação Python
As operações com strings são implementadas como métodos da classe string; algumas
dessas operações encontram-se abaixo.
17
Trilha de Aprendizagem 1 - Introdução à Programação Python
If-Then-Else
18
Trilha de Aprendizagem 1 - Introdução à Programação Python
Em geral, neste e-book, daremos preferência ao uso do for para criar laços de programa.
e o incremento de uma variável em um laço do tipo for, mas lembre-se de que o limite
indicado, do mesmo modo que a indexação de uma string, é um limite superior (< e
não
19
Trilha de Aprendizagem 1 - Introdução à Programação Python
As iterações também podem ser feitas sobre listas de valores, numéricos ou não.
Funções
As funções são declaradas com o comando def. As variáveis de uma função têm escopo
local, mas elas podem também acessar variáveis globais de seu programa.
20
Trilha de Aprendizagem 1 - Introdução à Programação Python
• Lista (list
• Tupla (tuple
• Conjunto (set
• Dicionário (dictionary
membro duplicado.
Vamos nos deter aqui apenas nas estruturas de listas e dicionários que terão mais utilidade
para nossos propósitos.
List
à lista, você encontra uma série de métodos que implementam funções úteis para esses
objetos.
21
Trilha de Aprendizagem 1 - Introdução à Programação Python
Listas podem conter quaisquer tipos de elementos, incluindo outras listas, e podem ser
Percorrendo listas
Essa é uma operação que empregaremos bastante. Existem basicamente duas formas de
percorrer uma lista.
• Por índice
elementos da lista.
• Por iterador
A segunda forma não está disponível em linguagens como C ou Java, mas ela é a forma
mais elegante e, se não for necessário alterar os elementos ou obter o índice ao percorrer
a lista, é o melhor modo a ser empregado.
22
Trilha de Aprendizagem 1 - Introdução à Programação Python
23
Trilha de Aprendizagem 1 - Introdução à Programação Python
Dictionary
com uma estrutura de dados JSON, essa é uma estrutura bastante semelhante em Python.
A principal vantagem dos dicionários é permitir recuperar os valores diretamente a partir
do valor de chave.
Assim como nas listas, os dicionários suportam quaisquer tipos de dados, como valores.
Percorrendo um Dicionário
24
Trilha de Aprendizagem 1 - Introdução à Programação Python
Populando um Dicionário
25
Trilha de Aprendizagem 1 - Introdução à Programação Python
File Handling
Operações com arquivos tipo texto serão pouco comuns em nosso caso, pois, na
maior parte dos casos, obteremos dados de tabelas e bases de dados em formato de
DataFrames Pandas. De qualquer modo, isso pode ser útil para você em algum momento.
urllib.request e você, se tiver familiaridade com comando Linux, ainda pode empregar o
comando !wget em um notebook Python para fazer o download do arquivo e empregá-lo
26
Trilha de Aprendizagem 1 - Introdução à Programação Python
6. NumPy
estruturas.
Criando arrays
Os arrays podem ser de uma ou mais dimensões, mas, diferentemente das listas, e como
matrizes numéricas, todos os elementos devem ter o mesmo tamanho e tipo. Eles são
indexados iniciando por 0 e seguem as mesmas regras de indexação de listas e strings
27
Trilha de Aprendizagem 1 - Introdução à Programação Python
Os vetores do NumPy operam como listas indexadas, e você pode empregar a mesma
forma de índices que empregamos para percorrer arrays NumPy (incluindo o método
Um dos recursos mais úteis do NumPy, que não encontramos em arrays de outras
linguagens, como C e Java, é que diversas operações podem ser executadas diretamente
sobre os arrays, sem a necessidade de implementar iterações ou laços de programa.
28
Trilha de Aprendizagem 1 - Introdução à Programação Python
Finalmente, abaixo, algumas operações que serão muito úteis nas seções seguintes.
29
Trilha de Aprendizagem 1 - Introdução à Programação Python
Tendo ou não familiaridade com programação, vale a pena lembrar algumas regras
e boas práticas que são úteis para você no aprendizado de uma nova linguagem de
programação.
Como aprender uma nova língua, você precisa assimilar e praticar seus conhecimentos.
Para resolver um problema, vá construindo a solução aos poucos. Resolva uma parte do
Ganhou um erro? Não está funcionando? Leia a mensagem de erro com atenção. Se não
30
Trilha de Aprendizagem 1 - Introdução à Programação Python
Você deve aprender a “ler” um código mesmo que não seja capaz de “escrevê-lo”. Isso
lhe dará a capacidade de criar inúmeras soluções poderosas, mesmo que você não
domine completamente a linguagem!
31
Trilha de Aprendizagem 1 - Introdução à Programação Python
• Python > About > Getting Started, site do Python, com vários links para documentos,
livros, videoaulas, cursos gratuitos.
O site do Numpy é
Nosso material contém todo o necessário para o desenvolvimento das atividades, mas
você pode, ainda, achar útil buscar outras fontes de introdução ao Python. De que
forma você prefere aprender? Há tutoriais para todo tipo de gosto, vídeos, livros e sites
iterativos. Deixo aqui algumas sugestões para você escolher o que for mais do seu estilo
de aprendizado.
Se você prefere vídeos sobre Python, acompanhe esse canal. Os vídeos são separados
por assunto e um ex-Google explica programação para você!
32
Trilha de Aprendizagem 1 - Introdução à Programação Python
ou ainda
Se prefere fazer um curso iterativo, esses são cursos básicos gratuitos. No primeiro, é
necessário fazer um pequeno cadastro antes de acessar..
33
Trilha de Aprendizagem 1 - Introdução à Programação Python
9. Síntese
Nesta trilha, apresentamos o ambiente interativo de Programação Python, o Google
Colab. Familiarize-se com esse ambiente. Ele é o que utilizaremos ao longo de
programação, se preferir.
funções, acesso básico a arquivos e as coleções de dados do Python, listas, sets, tuplas
e dicionários. Esses recursos são bastante simples e muito próximos do que empregam
outras linguagens e, talvez, a novidade resida principalmente na identação dos comandos
nas estruturas de coleções de dados, em geral mais simples que em outras linguagens.
Dessas coleções, listas e dicionários são particularmente importantes para o tratamento
de dados e o que veremos a seguir.
É essencial notar que empregar Python para Ciência de Dados pode ser diferente de
empregar o Python para outros propósitos. Desse modo, nosso aprendizado de Python
está focado nos recursos que são necessários para exploração de dados, e destacamos
isso em alguns pontos ao longo do texto (na manipulação de String e operações de File
suporte a processamento multithread, a integração com frameworks web etc., mas que
não são necessários para nossos propósitos. Também para o NumPy separamos aqui
apenas as principais funcionalidades das quais faremos uso.
34
Trilha de Aprendizagem 1 - Introdução à Programação Python
35
Trilha de Aprendizagem 1 - Introdução à Programação Python
11. Referências
CHOOSING PYTHON or R for Data Analysis? An Infographic. DataCamp Team, 9
analysis
Learning Python
Numpy
Python
2021.
36
CIÊNCIAS DE DADOS (BIG DATA PROCESSING AND ANALYTICS)
Sumário
1. Introdução ................................................................................................. 4
2. Pandas ..................................................................................................... 5
7. Síntese .................................................................................................... 42
9. Referências ............................................................................................ 44
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
1. Introdução
Nesta trilha, você aprenderá como empregar o pacote Pandas do Python para adquirir
dados, selecionar dados de interesse e fazer transformações úteis sobre os dados.
O Pandas é uma biblioteca para manipulação e análise de dados orientada a colunas. Ele
organiza os dados em formato de tabelas, semelhante ao que você encontra em bancos
de dados relacionais, ou mesmo em sistemas de planilhas. Sobre essas estruturas, ele
fornece uma série de operações que o tornam o principal pacote para manipulação de
dados em Python.
4
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
2. Pandas
• DataFrame: você pode imaginá-lo como uma tabela de dados relacionais, com linhas
e colunas nomeadas, como no Excel ou em SQL.
• Séries: é uma única coluna de dados, e o DataFrame contém uma ou mais Séries com
um nome para cada uma delas.
Import da biblioteca
Uma pd.Series pode ser criada a partir de uma lista e um pd.Dataframe pode ser criado
empregando-se uma estrutura de dicionário. #
5
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
Lendo um DataFrame
O uso mais comum do Pandas é para o acesso a arquivos e bases de dados, e o Pandas
permite ler e gravar dados de diferentes fontes como arquivos .csv, .json, .xlsx e arquivos
de bancos de dados sql, Mongo etc., os quais podem ser acessados de forma local ou
pela internet.
O comando df.head() permite exibir o aspecto inicial dos dados a partir de suas primeiras
linhas.
Se você estiver empregando o Google Colab e quiser acessar arquivos locais de sua
máquina, você pode arrastar os arquivos para o diretório da máquina virtual ou empregar
6
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
Antes de explorarmos o conteúdo dos dados, é útil termos algumas informações sobre
a estrutura dos dados com os quais estamos lidando, como os valores que os dados
assumem, quantas linhas temos em uma tabela, o número de atributos, os tipos de
dados etc.
7
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
3. Selecionando dados
Seleções de dados são bastante importantes, pois você nem sempre estará interessado
em exibir ou analisar todos os dados. Por exemplo, podemos ter dados de produção
de várias unidades de uma fábrica, mas precisar somente dos dados das unidades de
São Paulo (seleção de linhas ou casos). Ou podemos ter dados de vendas com diversas
informações dos produtos (cor, modelo etc.) e dos clientes (nome, CPF etc.) e querer
apenas dados de peso e dimensões do produto, e de origem e destino da compra para
analisar os preços de frete (seleção de colunas ou atributos). Mais frequentemente ainda,
você realizará duas seleções, criando slices dos dados.
8
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
Pode também ser útil você transformar uma pd.Series em uma lista Python para que
possa realizar as operações de listas que você já conhece.
9
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
Você, no entanto, pode estar interessado na seleção de mais que uma coluna de dados.
Para isso, basta informar ao Pandas uma lista dos atributos a serem selecionados.
Diferentemente da seleção anterior, que retorna uma Série do Pandas, a seleção desse
modo, com uma ou mais colunas informadas em uma lista, retorna um DataFrame.
A seleção com uma ou mais colunas informadas em uma lista retorna um DataFrame.
Note que df[‘tip’] retorna um pd.Series, enquanto selecionar df[[‘tip’]] retorna um
pd.DataFrame de uma única coluna.
10
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
De modo geral, você pode empregar a seleção de pd.Series para selecionar um único
atributo, e empregar a seleção pd.DataFrame quando estiver interessado na criação de
subconjuntos de dados.
Muitas vezes, é necessária a criação de atributos derivados a partir dos dados originais,
como converter os valores para R$, criar um atributo com o valor das contas descontada
a gorjeta ou com o valor da conta divido pelos participantes da mesa. Essa é uma grande
facilidade do Pandas que, a exemplo do NumPy, permite fazer essas operações com
um único comando sobre toda uma coleção de dados, sem a necessidade de laços de
programa.
11
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
Selecionar linhas
valores que buscamos. Por exemplo, você pode selecionar o tipo de peças que deseja
ver em um DataFrame com os dados de vários componentes, ou selecionar as unidades
de fábrica de uma certa cidade a respeito da qual você tem os dados de produção.
12
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
Exemplos:
Assim, podemos selecionar os dados somente dos não fumantes ou dos fumantes:
O uso mais geral das seleções é quando fazemos seleções de linhas e colunas dos dados
e, às vezes, referimo-nos a esse subconjunto dos dados como slice (fatia) dos dados.
A boa prática indica que sempre iniciaremos com a seleção das linhas.
13
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
Com isso, podemos fazer inúmeras seleções de dados que temos interesse em visualizar
ou analisar, e responder a muitas perguntas sobre os dados.
14
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
O Pandas ainda conta com uma série de operações para manipulação e transformação
dos dados como funções de joins e merge de tabelas, groupby etc. Empregaremos,
eventualmente, essas operações ao longo do texto e, para maiores detalhes, você poderá
consultar a documentação do Pandas ou outras referências online.
15
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
4. Agregações de dados
Muitas vezes, estamos interessados em aplicar uma função ou obter uma estatística
dos dados para diferentes classes ou grupos de dados simultaneamente. O Pandas
oferece uma operação de groupby, a qual permite manipular e resumir conjuntos de
dados dessa forma.
Você já aprendeu que pode aplicar operações – como média e máximo – para sumarizar
estatísticas, por exemplo, de uma Série de dados contendo a idade em um DataFrame de
cliente ou o preço do metro quadrado em um DataFrame de Imóveis.
Como podemos, no entanto, obter as médias de idade por sexo ou o preço máximo do
metro quadrado dos imóveis por região?
O groupby é a função que permite agregar esses dados e obter estatísticas ou aplicar
funções a várias classes ou grupos de dados.
16
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
Funcionamento do GroupBy
2. Aplicar uma computação, geralmente em uma estatística agregada como média, count
17
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
18
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
No exemplo acima,
2. Em seguida, aplicamos a cada grupo uma função de agregação sobre o valor. No caso,
aplicamos a sum(), mas poderíamos aplicar outras funções de agregação como count(),
mean(), std() etc.
19
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
Em uma única linha, todas as operação são executadas pela função groupby():
Aqui é empregado o índice do DataFrame. Não daremos muita atenção nesta introdução
ao Pandas ao uso de índices. Eles têm um papel mais importante no desempenho de
os índices como mais um atributo dos dados, o qual podemos referenciar como df.index.
Outras operações de agregação além do sum() podem ser, então, igualmente aplicadas
a quaisquer atributos, desde que façam sentido para seus valores (posso ter o valor
máximo de um atributo do tipo String, mas não um valor de média).
Ou ainda:
20
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
21
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
chave:
22
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
Você pode, então, fazer iterações sobre esses valores ou aplicar funções de agregação,
23
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
24
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
Acessando os valores
Você pode referenciar diretamente o atributo em um grupo para obter uma Série Pandas
e, então, operar esses valores como abaixo:
Um artifício bastante prático que você pode empregar, se não estiver preocupado com
o desempenho e o uso de recursos de memória das operações, é transformar seu
agrupamento em um DataFrame para que possa aplicar as operações que já conhece
diretamente para essa classe.
25
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
26
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
5. Combinações de dados
Muitas vezes, você pode estar lidando com mais de uma tabela ou conjunto de dados.
Assim, operações para combinar esses dados são muito úteis.
Existem várias formas de combinar conjuntos de dados com Pandas. Aqui, vamos nos
concentrar nas operações de concatenação e de junções (joins) de dados.
você não precisa se preocupar com ele. Nos exemplos que seguem, empregaremos os
DataFrames df1, df2 e df3.
27
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
Concatenação
Você pode concatenar tabelas de dados no sentido das linhas ou das colunas. O
caso “feliz” nessas operações é quando o número de colunas das tabelas é o mesmo
(concatenação no sentido das linhas) ou quando o número de linhas das tabelas é o
mesmo (concatenação no sentido das colunas).
28
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
29
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
Embora possa ser usada desse modo, tal operação pode gerar índices duplicados (como
visto acima), caso os conjuntos de dados tenham índices únicos e distintos. Nessas
30
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
Com o mesmo nome, os atributos não podem ser diferenciados; e precisamos usar a
localização dos atributos se quisermos recuperá-los (uma forma que não detalharemos
aqui).
31
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
A solução mais simples para isso é renomear as colunas após a operação. Isso pode ser
feito do modo abaixo, ou você pode empregar o método df.remane(columns=...).
O comando concat ainda pode ser empregado com o parâmetro inneer, pd.concat([df1,df2],
axis=0|1, join=’inner’), que concatena linhas ou colunas, mas garante que somente os
elementos inner (mesmas colunas ou índices) dentro das duas tabelas participarão
da concatenação. Não nos deteremos sobre esses comandos aqui, mas você pode
experimentar executá-los e ver os resultados obtidos. Mas atenção, não confunda essa
operação com a junção de dados. Veremos os Joins a seguir.
Junções
As junções empregam um atributo chave para match ou junção dos dados e desempenham
um papel muito importante nas combinações de diferentes dados. Aqui, as operações
seguem o mesmo princípio dos joins da SQL, e seus resultados também são novos
DataFrames, incluindo os conceitos inner e outter joins.
• Inner, incluímos somente linhas com match das chaves nas duas tabelas.
• Outter, incluímos linhas, independentemente do match das chaves nas duas tabelas.
o Left, incluímos linhas com match das chaves nas duas tabelas + linhas da tabela
à esquerda, independentemente de match.
o Right, incluímos linhas com match das chaves nas duas tabelas + linhas da tabela
à direita, independentemente de match.
32
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
Inner Joins
No primeiro exemplo, a junção é feita empregando o atributo employee para match dos
dados. Os três comandos abaixo produzem os mesmos resultados.
33
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
34
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
Right e Left Joins são empregados quando queremos adicionar à combinação dos dados
outros elementos, independentemente de fazerem match com as chaves de dados ou
não.
35
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
Na junção acima, você não encontra a funcionária Adriana por que a chave (atributo
group) Commercial só está presente na tabela à esquerda da junção. Para incluí-la,
podemos fazer uma junção Left:
36
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
Do mesmo modo, o skill Data Science não aparece na junção inicial por que a chave
(atributo group) Research só está presente na tabela à direita da junção. Para incluí-la,
podemos fazer uma junção Right:.
37
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
Para inclusão de dados de ambas as tabelas, podemos empregar o full outter joins das
tabelas:
38
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
Em muitos casos práticos, os dados não estarão exatamente no melhor formato para sua
análise. Podemos ter dados em colunas quando queríamos que estivessem em linhas, ou
vice-versa. Empregamos, então, transformações para reshape dos dados.
O Pandas fornece duas funções úteis para isso: o melt para levar dados de colunas para
linhas e o pivot para trazer dados de linhas para colunas.
Essa função incluirá, para cada id, uma nova variável com os valores do campo value_
vars.
39
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
Os parâmetros var_name e value_name podem ser empregados para alterar o nome dos
atributos criados.
Esta função cria, para cada valor de uma coluna, uma linha com os valores correspondentes.
40
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
Os parâmetros var_name e value_name podem ser empregados para alterar o nome dos
atributos criados.
41
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
7. Síntese
Nesta trilha, estudamos como manipular dados com o Pandas.
Quando temos dados de duas ou mais tabelas, as combinações de dados podem ser
empregadas tanto para consulta como para criação de novos conjuntos de dados e, aqui,
vimos como fazer concatenações e junções de tabelas com o Pandas.
Por último, aprendemos a empregar o Pandas para alterar a estrutura de linhas e colunas
dos dados (instruções melt e pivot).
42
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
Acesse Pandas GroupBy: Your Guide to Grouping Data in Python, disponível em:
<https://realpython.com/pandas-groupby/> e entenda mais como criar e manipular grupos
de dados com Python.
Veja aqui uma palestra recente de Wes McKinney, o desenvolvedor inicial do Pandas,
Wes McKinney - Keynote - PyCon Colombia 2020, disponível em: <https://youtu.be/
ZTXFQ2sEarQ>.
Revise aqui o essencial em Pandas Cheat Sheet for Data Science in Python, disponível
em: <https://www.datacamp.com/community/blog/python-pandas-cheat-sheet>, um
rápido tutorial de Karlijn Willems; ou, ainda, acesse o Tutorial do Pandas, disponível em:
<https://pandas.pydata.org/pandas-docs/stable/getting_started/index.html>.
43
Trilha de Aprendizagem 2 - Seleção e Organização de Dados com Pandas
9. Referências
MCKINNEY, Wes. Python for data analysis. Newton: O’Reilly Media, 2012.
PHUONG Vo., T. H.; CZYGAN, Martin. Getting Started with Python Data Analysis.
Birmingham: Packt Publishing, 2015.
VANDERPLAS, Jake. Python Data Science Handbook. Newton: O’Reilly Media, 2016.
Disponível em: <https://jakevdp.github.io/PythonDataScienceHandbook/. Acesso em: 16
jul. 2021.
44
CIÊNCIAS DE DADOS (BIG DATA PROCESSING AND ANALYTICS)
Sumário
1. Introdução ................................................................................................. 4
.............................................................................. 5
.................................................................................................. 23
............................................................................................. 26
.................................................................... 31
................................................................................................. 35
....................................................................................... 39
.................................................................................. 40
.................................................................................... 42
...................................................................................... 44
.................................................................. 45
.................................................................................................. 46
................................................................................... 47
.......................................................................................... 48
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
1. Introdução
Matplotlib Seaborn
Exploração
dos dados
Apresentação de resultados
4
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
5
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
6
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
7
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
8
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
9
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
10
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
11
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
12
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
13
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
Textos como rótulos dos eixos e outras anotações não são opcionais. A menos que
14
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
15
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
16
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
17
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
18
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
19
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
Latex
Empregando estilos
20
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
21
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
22
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
3. Evolução
23
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
24
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
25
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
4. Distribuição
Histogramas
26
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
27
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
28
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
29
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
30
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
5. Quantidades e Proporções
31
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
32
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
Pie Charts
Heat Maps
33
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
34
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
6. Relações
35
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
36
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
Correlograma
37
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
38
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
39
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
8. Resumo Matplotib
40
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
41
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
9. Resumo Seaborn
42
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
43
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
1.
2.
44
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
1. Matplotlib
2. Seaborn
3.
4. Pandas Visualization
5.
8.
45
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
12. Síntese
Exploração dos
dados Apresentação
46
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
code)
47
Trilha de Aprendizagem 3 - Visualização dos Dados com Matplotlib e Seaborn
14. Referências
48
CIÊNCIAS DE DADOS (BIG DATA PROCESSING AND ANALYTICS)
Sumário
1. Introdução ................................................................................................. 4
5. Síntese ................................................................................................... 37
7. Referências ............................................................................................ 39
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
1. Introdução
Não temos a pretensão aqui de esgotar todo o tema dessa análise, mesmo que preliminar,
dos dados. Selecionaremos, portanto, dois casos úteis (que poderão servir no futuro) para
que você faça suas próprias análises.
4
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
EDA consiste de uma exploração inicial e aberta dos dados. Empregando técnicas
dos dados e algumas respostas às primeiras perguntas que vão de encontro ao seu
interesse.
essas serão vistas mais adiante e, em geral, integram a “Preparação” dos dados para
O que é EDA?
5. desenvolver modelos simples (em nosso caso: o preço dos vinhos está
relacionado com as melhores avaliações?).
5
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
dados (embora os dois termos sejam usados quase de forma intercambiável). Ela adia
as suposições usuais sobre que tipo de modelo os dados seguem para permitir que os
próprios dados revelem sua estrutura e modelo subjacentes.
Mais importante que os aspectos técnicos da EDA é seu aspecto de pensamento analítico.
Você deve, antes, entender que tipo de perguntas são de interesse sobre dados. Esse
pensamento analítico também precisa seguir princípios da ciência em que, a cada análise,
Um pouco de história
(1981) e ganhou muitos seguidores como “a” maneira de analisar um conjunto de dados.
6
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
c. Quantidades e Proporções.
O primeiro com dados da bolsa de valores, e o segundo com dados sobre avaliações
de vinho.
7
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
Você pode, por exemplo, estar interessado em saber como evolui a quantidade de energia
pode nos proporcionar para a análise desses dados e entendermos, também, algumas
8
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
necessário que sejam fornecidas informações sobre o conteúdo dos dados, metadados,
cada caso, e assumiremos que elas, como em nosso exemplo, já são conhecidas.
A rápida inspeção dos dados acima mostra que temos valores de três índices da bolsa
para o período de 2020-01-02 a 2020-03-09.
9
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
A inspeção acima também mostra que os dados não estão exatamente no formato que
podíamos esperar: as datas se repetem, assim como os códigos dos índices. O ideal
terceira forma normal de bancos de dados relacionais); você poderá consultar mais sobre
O Pandas fornece várias instruções para reshape de dados, como merge, pivot, melt etc.
data.
Mais comum ainda, é a necessidade de juntarmos dados de diferentes fontes. Como você
10
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
O Pandas também fornece várias formas para combinarmos dados (concat, merge etc.)
dado inicial. Vejamos, porém, uma junção dos dados, algo que pode ser útil para você em
muitos casos práticos. A junção funciona de forma análoga a um join da SQL.
11
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
Muitas transformações também podem ser necessárias para tornar o dado mais adequado
para uma análise, e são comuns tanto transformações de mudança de tipos, encode de
Neste ponto de nosso exemplo, basta observar que o tipo de dado de ‘data’, embora
apresente os valores de forma correta, não é o tipo de dado ideal para esse tipo de
12
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
Explorando os dados
Dependendo do problema, você pode querer analisar: evoluções ou tendência dos dados,
distribuições dos dados, quantidades e proporções, relações etc. Neste exemplo, vamos
que nos permitirá aprender e praticar algumas técnicas bastante importantes e comuns.
numérico.
Isso pode ser feito atribuindo-se, para cada data do conjunto de dados, um valor inteiro
diferente a partir de 0. Se cada linha do conjunto de dados corresponde a uma data, esse
valor pode ser o próprio índice de seu conjunto de dados (para um DataFrame, df.index).
13
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
14
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
forma geral e alguns problemas com os quais você deverá lidar quando trabalha com
séries temporais. Você pode focar em detalhes quando estiver trabalhando com um caso
O procedimento acima é útil para muitos casos que envolvem séries temporais. Acima,
empregamos o índice dos dados (43 valores de [0,43] para cada data) para a linha de
tempo da regressão mas, na ausência de um índice, podemos criar um valor diferente
para cada data empregando, por exemplo:
diferentes e, neste caso, pode ser necessário associar a cada data a distância com
relação a menor data em seu conjunto de dados (não empregando, portanto, valores com
Em nosso exemplo, como os dados da bolsa referem-se a dias úteis, há intervalos de datas
adicionando um novo atributo com quantidade de dias a partir da data inicial. A função
dt.days permite transformar esses valores para o cálculo da regressão.
15
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
16
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
Essa linha média ainda pode ser incrementada com uma margem de erro, por exemplo, o
desvio padrão, permitindo acompanhar a dispersão dos dados ao longo da linha média.
Para isso, no lugar do plot, você poderá empregar o comando plt.errorbar. Como nossos
dados apresentam apenas uma única cotação diária, agregaremos as cotações em
semanais e as exibiremos semanalmente.
17
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
18
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
pode, por exemplo, observar a maior dispersão dos dados na semana 10.
19
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
O comando ax.twinx(), no modo Artist Layer, pode ser uma alternativa. Ele permite a
20
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
21
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
Esse procedimento, entretanto, só é útil quando temos até duas escalas diferentes de
dos dados.
para o intervalo [0,1]. Vamos, porém, adotar um procedimento muito usado, e igualmente
22
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
23
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
Não tiraremos conclusões sobre esses dados; deixaremos isso para os economistas e
analistas de mercado. Nosso interesse aqui é que você entenda algumas técnicas de
análise com os recursos que já estudamos e que poderão ser úteis em diversos casos.
É, de qualquer modo, fácil ver que o índice da bolsa segue de forma bastante próxima
de 2020.
24
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
Podemos observar que existem poucos vinhos nacionais avaliados e que a base possui
um grande número de valores ausentes.
25
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
desvio padrão desse dado. Nos casos em que você emprega os dados em algoritmos de
26
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
27
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
Qual é a origem dos tipos de vinhos mais baratos e mais caros avaliados?
Os operadores nlargest e nsmallest do Pandas são bastante úteis para responder esse
tipo de questões sobre os dados.
no atributo ‘variety’).
28
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
prejudicada pela dispersão dos valores e os valores discrepantes, como podemos ver
29
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
Matplotlib falha em calcular as estatísticas requeridas dos quartis. Desse modo, temos
Fica evidente, assim, a presença de inúmeros outliers nos dados e podemos, então,
30
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
Observamos que vinhos acima de USD 80 são valores discrepantes no mercado, estando
a maior parte dos vinhos abaixo de USD 50-40, e que os valores dos vinhos nacionais não
pergunta bastante simples de ser respondida. Não deve ser uma surpresa descobrir que
a maior parte dos vinhos nacionais avaliados vem da Serra Gaúcha.
31
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
32
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
De qualquer modo, os vinhos brasileiros têm preços abaixo da média mundial, mas
também avaliações abaixo da média.
É claro que aqui consideramos como melhores os vinhos mais bem avaliados. De fato,
uma simples exibição dos dados permite ver essa relação.
33
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
Mais adiante no curso, quando você conhecer técnicas estatísticas como testes de
34
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
35
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
Podemos nos estender por muitas mais análises desses dados, mas quando trabalhamos
em um caso real, o objetivo da análise direcionará e limitará essas possibilidades.
De qualquer modo, toda análise deve ter uma conclusão e, aqui, poderíamos resumir
alguns de nossos resultados.
que isso para beber um excelente vinho. Os vinhos franceses, bastante famosos, embora
superem em qualidade e preço a média dos demais países, são surpreendentemente
superados pelos vinhos de outros países, como Índia, Inglaterra e Alemanha.
Novamente, essas análises são apenas um exercício sobre as técnicas que queremos
36
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
5. Síntese
Nesta trilha, empregamos vários recursos de Python e de suas bibliotecas (Pandas,
Não se preocupe com os detalhes de cada operação empregada aqui. Elas são menos
que os aspectos técnicos da EDA (Exploratory Data Analysis) é seu pensamento analítico
As técnicas variarão de caso para caso, elas podem diferir muito dos exemplos que
apresentamos e, com os fundamentos que aprendeu, você poderá buscá-las quando
tiver necessidade de empregá-las.
37
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
de máquina. Para uma rápida introdução sobre isso em Python, você pode acessar https://
.
38
Trilha de Aprendizagem 4 - Estudos de Caso de Análise de Dados I
7. Referências
https://www.jstatsoft.org/index.php/jss/article/view/v059i10/v59i10.pdf>.
Acesso em: 19 jul. 2021.
39
CIÊNCIAS DE DADOS (BIG DATA PROCESSING AND ANALYTICS)
Sumário
1. Introdução .................................................................................................................................... 4
4. Matrizes ........................................................................................................................................13
6. Síntese...........................................................................................................................................17
7. Referências ..................................................................................................................................18
Trilha de Aprendizagem Introdução à Programação R
1. Introdução
Seguindo o padrão de introduzir a linguagem de programação que será estudada nestas próximas
4
Trilha de Aprendizagem Introdução à Programação R
2. Introdução à linguagem R
# Como funciona
5
Trilha de Aprendizagem Introdução à Programação R
help(c)
apenas os valores 1, 2, 3, 4 e 5?
6
Trilha de Aprendizagem Introdução à Programação R
Pergunta 2) O que acontece se você escrever as condicionais do vetor desta forma X [(X > 8) & (X
< 5)]? E por que isso aconteceu?
7
Trilha de Aprendizagem Introdução à Programação R
8
Trilha de Aprendizagem Introdução à Programação R
Co
9
Trilha de Aprendizagem Introdução à Programação R
3. Tipos de Dados
str(X)
10
Trilha de Aprendizagem Introdução à Programação R
FALSE
FALSE
11
Trilha de Aprendizagem Introdução à Programação R
12
Trilha de Aprendizagem Introdução à Programação R
Outra fo
Introdução à linguagem R
interpretador entende como FALSE, e então o preenchimento será feito de forma colunar,
preenchendo toda a primeira coluna, então parte para a segunda coluna, depois a terceira
13
Trilha de Aprendizagem Introdução à Programação R
14
Trilha de Aprendizagem Introdução à Programação R
15
Trilha de Aprendizagem Introdução à Programação R
Pergunta 1) Pen
retorne apenas os valores 1, 2, 3, 4 e 5?
Pergunta 2) O que acontece se você escrever as condicionais do vetor desta forma X [(X >
8) & (X < 5)]? E por que isso aconteceu?
16
Trilha de Aprendizagem Introdução à Programação R
6. Síntese
17
Trilha de Aprendizagem Introdução à Programação R
7. Referências
Projetos em R para leigos
18
CIÊNCIAS DE DADOS (BIG DATA PROCESSING AND ANALYTICS)
Sumário
1. Introdução .................................................................................................................................... 4
7. Síntese...........................................................................................................................................22
8. Referências ..................................................................................................................................23
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr
1. Introdução
Para iniciar a Trilha 6 deste componente curricular, exploraremos alguns pacotes de
manipulação de dados.
O R tem muitas funções integradas, que são acessadas por meio do pacote-base que já vem
como padrão no motor da linguagem. Contudo, também podemos usar funções que são
armazenadas em pacotes criados por outras pessoas.
faz com que seu motor da linguagem vá até o repositório do Comprehensive R Archive
Para usar as funções de um pacote, você precisa primeiro carregá-lo usando a função
carregado durante a execução, não precisa carregar novamente para usar as funções. Há
4
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr
2. Atualizando o motor do R
P
forçar a atualização da versão do motor de processamento por meio de pacotes.
O primeiro passo para atualizar o ambiente é instalar o pacote installR e, depois, carregá-lo,
para então ser feita a chamada da função updateR e seguir com o guia de instalação:
version10
5
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr
6
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr
variável, já no formato de data frame. Siga o código abaixo para carregar os dados:
----------------
Para observar as primeiras linhas do conjunto de dados, é executada a função head que
7
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr
4. Download do dataset
trilha.
em um data frame.
Abaixo, é escrito, na variável URL, o caminho para fazer o download do dataset completo.
Em seguida, é criada uma nova variável com o nome que o arquivo terá em seu computador
local:
8
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr
está o arquivo a ser baixado da Internet para seu computador local, e o segundo é o nome
que este arquivo terá:
Após o download do arquivo, é necessário fazer a extração dos arquivos internos. Este
de dentro do ZIP:
9
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr
Repare em sua pasta de trabalho que existe um arquivo chamado voos2008.csv com
aproximadamente 10Mb de tamanho. Este arquivo também está disponível para download
dentro dos arquivos disponíveis no componente curricular.
10
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr
Depois de carregar o conjunto de dados, pode-se explorar alguns problemas que são
11
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr
resolver este problema. O problema é bastante claro: Qual é o dia da semana/época do ano
para voar que minimiza atrasos? Então, podemos olhar o dicionário de dados deste dataset
O pipe permite que funções sejam executadas de forma ordenada, ou seja, uma função
será executada somente após a outra. Repare que o símbolo do pipe está entre a variável
com os dados e a função select. Isso faz com que o interpretador do R execute a instrução
está do lado direito do pipe. Ou seja, este exemplo de código executará o select em cima
da base de dados.
variáveis que são relevantes para resolver o problema foram retornadas. É possível ver
pouco:
12
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr
executado somente após a seleção de variáveis já ter sido executada. Ou seja, executa a
instrução que está do lado direito do pipe em cima do objeto que está do lado esquerdo.
cálculo da média:
13
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr
Combinamos há pouco que trataríamos a época como meses. Então, faremos esse cálculo
Para isso, inseriremos três novas funções em nosso estudo. A função mutate, capaz de criar
A média de atraso foi criada com a função mean e salva em uma nova variável chamada
14
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr
uma função de seleção das variáveis Month e atrasoMedio, somente uma aparição da
Pergunta 1) Aproveitando a função mutate, como deve ser feito o cálculo de tempo
médio de atraso de voo com todas as observações (linhas) que temos no dataset
original? Mostre os dez primeiros registros deste resultado.
15
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr
neste dataset.
Após fazer a seleção das variáveis, é hora de agrupar os códigos do aeroporto de origem.
Repare que os mesmos aeroportos de origem apresentam o mesmo total de atraso. Procure
16
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr
Para fazer a ordem inversa dos valores, em vez de usar somente a função arrange, é
17
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr
interessante para quem for consumir o resultado de seu trabalho. Se você se lembrar, lá no
dicionário de dados, há uma descrição para cada um dos quatro códigos de cancelamento.
join para unir este novo data frame com o resultado que foi criado.
descrição:
Codigo Descricao
A Operadora
C NAS
DSegurança
Com os dois vetores criados, é hora de incluir uma nova função em nosso aprendizado. A
da coluna que queremos para **Codigo**, dizendo que ela terá os valores do vetor de
código que criamos anteriormente. A mesma coisa será feita com a coluna **Descricao**
que receberá os valores que trouxemos lá do dicionário.
18
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr
Codigo Descricao
1A Operadora
Agora é hora de unir os resultados dos dois data frame, o que tem a sua manipulação
de dados e o que tem o código e a descrição dos cancelamentos. Para isso, é necessário
19
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr
Pergunta 1) Aproveitando a função mutate, como deve ser feito o cálculo de tempo
médio de atraso de voo com todas as observações (linhas) que temos no dataset original?
Mostre os dez primeiros registros deste resultado.
Pergunta 2) No experimento para mostrar o mês com menos atrasos, o que acontece se
executar a função unique() antes de executar a função select?
20
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr
21
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr
7. Síntese
• Pipe
• Select
• mutate
• unique
• join
22
Trilha de Aprendizagem Seleção e Organização de Dados com Tidyr e Dplyr
8. Referências
Projetos em R para leigos
23
CIÊNCIAS DE DADOS (BIG DATA PROCESSING AND ANALYTICS)
Sumário
1. Introdução ................................................................................................. 4
3. Síntese .................................................................................................... 20
4. Referências ............................................................................................ 21
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2
1. Introdução
outras maneiras de visualizar dados, bem como algumas regras gerais a serem seguidas
É esperado que, ao concluir esta trilha, você tenha habilidades para discutir estes
assuntos:
Ao obter um conjunto de dados e uma pergunta da área de negócio, é esperado que você
• escalas (scales).
4
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2
fornecido à função ggplot() ou podem ser fornecidos aos respectivos objetos geométricos
(geometric objects).
5
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2
Para aplicar o conhecimento, neste e-book, utilizaremos a base de dados Diamonds que
faz parte do pacote ggplot2. Esse dataset fornece observações sobre diamantes. Para
acessar essa base, é necessário instalar e carregar o pacote ggplot2.
• Cut: qualidade do corte (Fair, Good, Very Good, Premium, Ideal), indo em
escala do pior para o melhor corte.
• Clarity: medida de pureza do diamante, com escala I1 (pior), SI2, SI1, VS2,
VS1, VVS2, VVS1, IF (melhor).
em cima dos elementos do pacote ggplot2. Estas técnicas de exploração de dados nos
ajudarão a responder às perguntas por meio de um suporte visual.
6
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2
2. 1 Primeiras impressões
Inicializaremos com uma impressão básica da área de plotagem, utilizando duas variáveis
da área de plotagem:
7
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2
Neste momento, a impressão foi apenas da área, sem nenhum elemento visual que nos
mostrará alguma informação dos dados. Podemos, então, adicionar um elemento de objetos
duas variáveis no plano cartesiano. Veja, no código abaixo, a saída que o modelo apresenta:
8
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2
concentração de diamantes que são mais leves e custam menos. Com o passar dos
exercícios, exploraremos cada vez mais essas características.
para ggtitle(), xlab() e ylab(), que representam o ajuste do título e, em seguida, dos rótulos
9
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2
respectivos parâmetros. Mudaremos a cor dos pontos e também seu tamanho. Repare no
10
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2
11
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2
a seguir. Repare que, tanto o tamanho dos pontos quanto a cor estão variando de acordo
com a variável que foi utilizada em sua impressão:
12
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2
13
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2
14
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2
camada, geom_smooth().
são apenas pontos impressos. Muitas vezes, para ajudar nesse sentido, adicionamos uma
linha de suavização para ver como são as tendências. Isso pode ser especialmente útil
ao tentar entender as regressões (estimação de valores numéricos). O geom_smoth ajuda
exatamente com isso, pois ele adiciona uma média condicional suavizada nos dados:
15
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2
geom,
como mostrado abaixo. E, neste caso, ao herdar os elementos de estética, cada série da
Clarity montará uma linha de tendência com a suavização:
Neste caso, uma alternativa elegante para gerar a visualização é separar os dados em
faces, nas quais cada face representará um subgrupo do conjunto de dados. Essa
segmentação é realizada com o elemento facet_wrap, que recebe o nome da variável
com a qual se deseja fazer a segmentação dos dados. Repare no código abaixo, ao
informar a variável Clarity no elemento de facet_wrap, os dados são segmentados em
16
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2
17
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2
2. 3 Paleta de cores
Para iniciar, veremos como é o carregamento da biblioteca e, então, veremos sua paleta
de cores. Acompanhe o código abaixo:
18
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2
19
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2
3. Síntese
Neste e-book, estudamos o pacote ggplot2 e algumas de suas formas de geração de
• Escala de tamanho.
• Elementos geométricos.
• Segmentação de dados.
• Linhas de tendências.
• Sobreposição de elementos.
20
Trilha de Aprendizagem 7 - Visualização de Dados com ggplot2
4. Referências
21
CIÊNCIAS DE DADOS (BIG DATA PROCESSING AND ANALYTICS)
Sumário
1. Introdução ................................................................................................. 4
6. Síntese .................................................................................................... 17
7. Referências ............................................................................................ 18
Trilha de Aprendizagem 8 - Estudos de Caso de Análise de Dados II
1. Introdução
Pensando em todo o hype gerado pelas tecnologias de IA nos últimos anos, a guerra
visando a tomada de sua liderança entre os Estados Unidos e a China, e a forma como
de seu negócio. Essas ferramentas de IA são oferecidas por diversos fornecedores como
Microsoft, Google, Amazon, IBM… E são técnicas conhecidas como serviços cognitivos,
ou suas variabilidades semânticas, cobrindo cinco pilares:
• Visão computacional.
Contudo, não precisa saber a fundo o que são e como funcionam estes processos. Você
consome essas ferramentas por meio de chamadas de APIs, uso de SDKs ou serviços
na nuvem que permitam baixar o resultado treinado e acoplá-lo em seu ambiente. Apesar
de não precisar, é sempre bom conhecer as técnicas e os processos que está utilizando.
mas precisa desenvolver produtos que utilizam essas técnicas, é recomendado contratar
lugar, porque você não precisa se preocupar em construir seu modelo do zero, você
segundo lugar, os dados e modelos dos serviços são atualizados com frequência pelos
fornecedores, fazendo com que você sempre tenha um resultado mais completo.
4
Trilha de Aprendizagem 8 - Estudos de Caso de Análise de Dados II
Visão computacional
Alguns pesquisadores dizem que as interações dessa geração serão feitas por meio
de voz, e não exclusivamente com cliques do mouse ou toques na tela. E, para isso, é
importante que o sistema consiga interagir com o usuário dessa nova forma. Quando
você ativa algum assistente pessoal como a Alexa, Google Home, Siri ou Cortana e dá um
comando de voz. O assistente interpreta o que você pediu, sintetiza aquilo para texto e
dispara o comando internamente nos diversos sistemas que integram esse ambiente. O
comando é processado e algum retorno é feito. Esse retorno é então sintetizado de texto
para voz e é reproduzido pelo alto-falante do assistente.
Quando um texto é enviado para uma análise, é importante conseguir entender o que ele
intenções de cada texto e extrair possíveis entidades. O resultado desta técnica permite
Sim, as pesquisas e indexações de documentos permitem com que você faça isso sem
expor seus dados publicamente.
5
Trilha de Aprendizagem 8 - Estudos de Caso de Análise de Dados II
de trabalhar. Contudo, alguns problemas são genéricos, como reconhecer um rosto, por
exemplo. Independentemente de ser um rosto das pessoas de nossa empresa, ou de
para nossa empresa para reconhecer um rosto. Podemos usar esses serviços de
forma coletiva.
6
Trilha de Aprendizagem 8 - Estudos de Caso de Análise de Dados II
2. Visão computacional
cinco passos para visão computacional, que é uma das áreas de maior percepção do
uso da IA. Não porque está em evidência, mas porque é próxima ao comportamento
humano, assim como a questão de interpretação de linguagem natural. Com isso, as
de problemas.
de faces, entre outros. A análise de vídeo também entra nesta categoria, pois os vídeos
curto de tempo.
Recomendo a leitura do livro A Revolução do Aprendizado Profundo, para ter uma ideia
mais ampla do uso das soluções de Deep Learning, além da visão computacional.
Amostras de imagens
de dados de imagens que são possíveis de se utilizar para ensinar a máquina. Algumas
dizer uma quantidade mínima de amostras) de ovelhas, mas também apresentar diversas
imagens de nuvens no céu para que sirvam de contraexemplos.
7
Trilha de Aprendizagem 8 - Estudos de Caso de Análise de Dados II
Redimensionar os tamanhos
pixels de largura por 500 pixels de altura, existe no total 250.000 pixels naquela matriz.
algumas contendo 2.000 x 2.000 pixels de tamanho. São 4 milhões de pontos, isso só em
uma imagem.
necessário para trabalhar com uma imagem dessas, em todos seus pixels e cores RGB.
Uma técnica bastante utilizada é transformar tudo em tons de cinza. Com isso, em vez
de ter a profundidade de três camadas de cores do RGB, é só uma camada que varia
entre o preto e o branco, com um intervalo de 255 possibilidades sendo o valor 0, preto
absoluto, e o valor 255, branco absoluto. Todo o intervalo é um degradê saindo do preto
e chegando ao branco, passando por vários tons de cinza. Se seu problema não precisa
Outra técnica que pode estender esse processamento, é a binarização para valores de
Com isso, qualquer valor de cor do pixel é comparado com esse número de corte. Se o
valor do pixel for inferior ao corte, ele passará a ser preto, se o valor for superior ao de
corte, ele passará a ser branco. Isso transforma a imagem exclusivamente em preto e
branco.
8
Trilha de Aprendizagem 8 - Estudos de Caso de Análise de Dados II
Limpar os ruídos
faz uma média aritmética dos valores dos pixels a sua volta, e substitui o valor daquele
pixels para acontecer a convolução da imagem. Esse processo faz uma segmentação
comparado com o valor da média aritmética de todos os outros oito pixels a sua volta,
incluindo os diagonais. Então, o valor do pixel é comparado com o resultado do cálculo
Treinar o modelo
Depois de padronizar e limpar todas as imagens, é necessário criar o modelo que fará
minha visão, a resposta é depende. Isso porque cada caso é um caso, e se você precisa
fazer do zero.
9
Trilha de Aprendizagem 8 - Estudos de Caso de Análise de Dados II
forma. Quando algum assistente pessoal como a Alexa, Google Home, Siri ou Cortana é
ativado e recebe um comando de voz, é necessário interpretar o que foi solicitado pelo
O assistente ouve o que o usuário pediu, então transforma o áudio em texto por meio
de um processo de transcrição, e então dispara o comando internamente nos diversos
sistemas que integram esse ambiente. O comando é analisado e processado, e o retorno
do sistema devolve a resposta. Esse retorno é então sintetizado de texto para voz, e é
reproduzido pelo alto-falante do assistente, concluindo assim o ciclo daquele diálogo.
trivial. Pode-se estender novas habilidades para aumentar sua capacidade de interação,
frase ou perceber a entonação da voz são explorados por técnicas de Machine Learning.
sistema de interação. Mais uma vez, no ambiente Microsoft, é permitido transformar o texto
10
Trilha de Aprendizagem 8 - Estudos de Caso de Análise de Dados II
respectivos parâmetros. Mudaremos a cor dos pontos e também seu tamanho. Repare no
Assista ao vídeo Demo: The Magic of AI Neural TTS and Holograms at Microsoft Inspire
2019, disponível em: < >.
Fonte
11
Trilha de Aprendizagem 8 - Estudos de Caso de Análise de Dados II
computacional disponível para isso, mas também porque é mais rápido de desenvolver,
utilizando os serviços cognitivos.
Esses serviços permitem ao usuário digitar uma ação de texto corrido, ou então dizer
das vezes.
Lemmatization que se refere a fazer as coisas corretamente com o uso de uma análise
Stop Words que são as palavras de ligação, artigos, preposições, e outras palavras que
Token
12
Trilha de Aprendizagem 8 - Estudos de Caso de Análise de Dados II
O que fazer
Pense que, quando um texto é enviado para análise, é fundamental entender o que ele
formas diferentes. Mas, se isso acontece, como podemos interpretá-lo e entender o que
texto e extrair possíveis entidades. O resultado esperado é que, ao usar essas técnicas,
QnA
• Perguntas – é o que você espera que um usuário faça. As perguntas serão combinadas
com respostas.
• Respostas
resposta está emparelhada com uma pergunta na base de conhecimento.
13
Trilha de Aprendizagem 8 - Estudos de Caso de Análise de Dados II
LUIS
• Intenção
• Entidades – a entidade representa uma palavra ou frase dentro do texto, que você
Dicas de criação
elementos que permitam e facilitem as interações do usuário com seu sistema. Contudo,
• Intenções
como ‘Reservar um voo’ e ‘Reservar um hotel’. Você pode diferenciar qual aspecto da
• Construir iterativamente
aplicativo.
14
Trilha de Aprendizagem 8 - Estudos de Caso de Análise de Dados II
ou Bing, para sua empresa. Sim, é possível permitir a busca de um termo e analisar
Assista ao vídeo Using Cognitive Search to Understand the JFK Documents, disponível
em < >.
15
Trilha de Aprendizagem 8 - Estudos de Caso de Análise de Dados II
Fonte
Fonte
16
Trilha de Aprendizagem 8 - Estudos de Caso de Análise de Dados II
6. Síntese
• Visão computacional.
17
Trilha de Aprendizagem 8 - Estudos de Caso de Análise de Dados II
7. Referências
LEE, K. F.
18