Você está na página 1de 8

Python para

Ciência de Dados
Uma introdução prática

Yuli Vasiliev

Novatec
Copyright © 2022 by Yuli Vasiliev. Title of English-language original: Python for Data Science: A Hands-
On Introduction, ISBN 9781718502208, published by No Starch Press Inc. 245 8th Street, San Francisco,
California, United States 94103. The Portuguese Language 1st Edition Copyright © 2023 by Novatec
Editora Ltda under license by No Starch Press Inc. All rights reserved.
Copyright © 2022 by Yuli Vasiliev. Título original em Inglês: Python for Data Science: A Hands-On
Introduction, ISBN 9781718502208, publicado pela No Starch Press Inc. 245 8th Street, San Francisco,
California, United States 94103. 1ª Edição em Português Copyright © 2023 pela Novatec Editora Ltda
sob licença da No Starch Press Inc. Todos os direitos reservados.
© Novatec Editora Ltda. [2023].
Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução
desta obra, mesmo parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e
da Editora.
Editor: Rubens Prates GRA20230411
Tradução: Cibelle Ravaglia
Revisão gramatical: Tássia Carvalho
ISBN do impresso: 978-85-7522-848-7
ISBN do ebook: 978-85-7522-849-4
Histórico de impressões:
Maio/2023 Primeira edição
Novatec Editora Ltda.
Rua Luís Antônio dos Santos 110
02460-000 – São Paulo, SP – Brasil
Tel.: +55 11 2959-6529
E-mail: novatec@novatec.com.br
Site: https://novatec.com.br
Twitter: twitter.com/novateceditora
Facebook: facebook.com/novatec
LinkedIn: linkedin.com/in/novatec
GRA20230411

Dados Internacionais de Catalogação na Publicação (CIP)


(Câmara Brasileira do Livro, SP, Brasil)

Vasiliev, Yuli
Python para ciência de dados : uma introdução
prática / Yuli Vasiliev ; tradução Cibelle Ravaglia.
-- 1. ed. -- São Paulo : Novatec Editora, 2023.

Título original: Python for data science


ISBN 978-85-7522-848-7

1. Python (Linguagem de programação para


computadores) I. Título.

23-151673 CDD-005.133
Índices para catálogo sistemático:

1. Python : Linguagem de programação : Computadores


: Processamento de dados 005.133

Eliane de Freitas Leite - Bibliotecária - CRB 8/8415


Sumário

Introdução...............................................................................................................10

Capítulo 1 ■ Conceitos básicos de dados....................................................................14


Categorias de dados................................................................................................... 14
Dados não estruturados........................................................................................ 15
Dados estruturados............................................................................................... 15
Dados semiestruturados........................................................................................ 17
Dados de séries temporais..................................................................................... 18
Fontes de dados......................................................................................................... 19
APIs..................................................................................................................... 20
Páginas web...........................................................................................................21
Banco de dados..................................................................................................... 22
Arquivos............................................................................................................... 23
Pipeline de processamento de dados........................................................................... 24
Aquisição.............................................................................................................. 24
Limpeza............................................................................................................... 25
Transformação...................................................................................................... 25
Análise.................................................................................................................26
Armazenamento.................................................................................................... 27
Abordagem pythônica................................................................................................28
Recapitulando............................................................................................................ 29

Capítulo 2 ■ Estruturas de dados do Python...............................................................30


Listas......................................................................................................................... 30
Criando uma lista..................................................................................................31
Usando métodos comuns de objetos de lista...........................................................31
Usando a notação de fatiamento............................................................................ 33
Usando uma lista como uma fila............................................................................ 34
Usando uma lista como uma pilha......................................................................... 35
Usando listas e pilhas para processamento de linguagem natural............................36

3
4 Python para Ciência de Dados

Melhorias com list comprehensions....................................................................... 39


Tuplas........................................................................................................................ 43
Uma lista de tuplas...............................................................................................44
Imutabilidade....................................................................................................... 45
Dicionários................................................................................................................ 45
Lista de dicionários............................................................................................... 45
Adicionando dados a um dicionário com o método setdefault()..............................46
Carregando arquivos JSON em um dicionário........................................................48
Conjuntos.................................................................................................................. 49
Removendo duplicações de sequências................................................................... 49
Executando operações comuns de conjunto...........................................................50
Recapitulando............................................................................................................ 52

Capítulo 3 ■ Bibliotecas de ciência de dados do Python..............................................54


NumPy...................................................................................................................... 54
Instalando o NumPy............................................................................................. 55
Criando um array do NumPy................................................................................ 55
Executando operações por elemento......................................................................56
Usando funções estatísticas do NumPy..................................................................56
pandas....................................................................................................................... 57
Instalação do pandas............................................................................................. 58
Estrutura de dados Series do pandas...................................................................... 58
DataFrames do pandas...........................................................................................61
scikit-learn..................................................................................................................71
Instalando o scikit-learn........................................................................................ 72
Obtendo um conjunto de dados de amostra........................................................... 72
Carregando o conjunto de dados de amostra em um DataFrame do pandas............ 73
Dividindo o conjunto de dados de amostra em um conjunto de treinamento e em um
conjunto de teste.............................................................................................. 73
Transformando texto em vetores de features numéricas........................................... 74
Treinando e avaliando um modelo......................................................................... 75
Efetuando predições com novos dados................................................................... 75
Recapitulando............................................................................................................ 76

Capítulo 4 ■ Acessando dados a partir de arquivos e de APIs.......................................77


Importando dados com a função open() do Python.....................................................77
Arquivos de texto.................................................................................................. 78
Arquivos de dados tabulares..................................................................................80
Arquivos binários.................................................................................................. 82
Exportando dados para arquivos................................................................................ 83
Sumário 5

Acessando arquivos remotos e APIs.............................................................................84


Como funcionam as requisições HTTP.................................................................. 85
Biblioteca urllib3..................................................................................................86
Biblioteca Requests...............................................................................................89
Movendo dados a partir de e para um DataFrame.......................................................90
Importando estruturas aninhadas JSON................................................................90
Convertendo um DataFrame em JSON...................................................................91
Carregando dados online em um DataFrame com a pandas-datareader................... 93
Recapitulando............................................................................................................94

Capítulo 5 ■ Trabalhando com bancos de dados.........................................................95


Bancos de dados relacionais........................................................................................96
Entendendo instruções SQL.................................................................................. 97
Introdução ao MySQL...........................................................................................98
Definindo a estrutura do banco de dados...............................................................99
Inserindo dados no banco de dados...................................................................... 101
Consultando o banco de dados............................................................................ 103
Usando ferramentas de análise de banco de dados............................................... 106
Bancos de dados NoSQL........................................................................................... 112
Armazenamentos de chave-valor........................................................................... 113
Bancos de dados orientados a documento............................................................. 115
Recapitulando........................................................................................................... 118

Capítulo 6 ■ Agregando dados................................................................................ 119


Dados para agregação............................................................................................... 120
Combinando DataFrames.........................................................................................122
Agrupamento e agregação dos dados.........................................................................124
Visualizando agregações específicas por MultiIndex.............................................. 126
Fatiando um intervalo de valores agregados...........................................................127
Fatiamento dentro dos níveis de agregação........................................................... 128
Adicionando um total geral................................................................................. 129
Adicionando Subtotais........................................................................................ 130
Selecionando todas as linhas em um grupo................................................................ 131
Recapitulando...........................................................................................................132

Capítulo 7 ■ Combinando conjuntos de dados.......................................................... 133


Combinando estruturas built-in de dados................................................................. 134
Combinando listas e tuplas com o operador +..................................................... 134
Combinando dicionários com o operador **..........................................................135
6 Python para Ciência de Dados

Combinando linhas correspondentes de duas estruturas...................................... 136


Implementando diferentes tipos de joins para listas.............................................. 138
Concatenando arrays do NumPy............................................................................... 141
Combinando estruturas de dados do pandas..............................................................142
Concatenando DataFrames..................................................................................143
Join de dois DataFrames.......................................................................................148
Recapitulando...........................................................................................................153

Capítulo 8 ■ Criando visualizações........................................................................... 154


Visualizações comuns............................................................................................... 154
Gráficos de linhas............................................................................................... 154
Gráficos de barras............................................................................................... 156
Gráficos de pizza................................................................................................. 156
Histogramas........................................................................................................157
Plotando gráficos com a Matplotlib.......................................................................... 158
Instalando a Matplotlib....................................................................................... 158
Usando a matplotlib.pyplot..................................................................................159
Trabalhando com os objetos Figure e Axes............................................................ 161
Usando outras bibliotecas com a Matplotlib.............................................................. 165
Plotando dados do pandas.................................................................................. 165
Plotando dados geoespaciais com a Cartopy..........................................................167
Recapitulando...........................................................................................................172

Capítulo 9 ■ Analisando dados geográficos.............................................................. 173


Obtendo os dados geográficos...................................................................................173
Transformando um endereço legível por humanos em coordenadas geográficas...... 174
Obtendo as coordenadas geográficas de um objeto em movimento........................175
Análise de dados espaciais com geopy e Shapely.........................................................179
Encontrando o objeto mais próximo.....................................................................179
Encontrando objetos em determinada área........................................................... 182
Combinando ambas as abordagens...................................................................... 184
Combinando dados espaciais e não espaciais............................................................. 186
Derivando atributos não espaciais........................................................................ 186
Join de conjuntos de dados espaciais e não espaciais............................................. 188
Recapitulando.......................................................................................................... 190

Capítulo 10 ■ Analisando dados de séries temporais................................................ 191


Série temporal regular vs. irregular............................................................................. 191
Técnicas comuns de análise de séries temporais..........................................................193
Sumário 7

Calculando mudanças percentuais....................................................................... 195


Cálculos de janela rolante.................................................................................... 196
Calculando a mudança percentual de uma média móvel........................................197
Séries temporais multivariadas.................................................................................. 198
Processando séries temporais multivariadas......................................................... 199
Analisando dependências entre variáveis.............................................................. 200
Recapitulando.......................................................................................................... 205

Capítulo 11 ■ Obtendo insights a partir de dados..................................................... 206


Regras de associação................................................................................................ 207
Suporte............................................................................................................... 208
Confiança........................................................................................................... 208
Lift..................................................................................................................... 209
Algoritmo Apriori.................................................................................................... 209
Criando um conjunto de dados de transação.........................................................210
Identificando conjuntos de itens frequentes........................................................... 211
Gerando regras de associação...............................................................................213
Visualizando regras de associação.............................................................................. 214
Obtendo insights acionáveis a partir de regras de associação.......................................218
Gerando recomendações......................................................................................218
Planejando descontos com base nas regras da associação.......................................219
Recapitulando.......................................................................................................... 224

Capítulo 12 ■ Aprendizado de máquina para análise de dados................................. 225


Por que aprendizado de máquina?............................................................................ 225
Tipos de aprendizado de máquina............................................................................ 226
Aprendizado supervisionado............................................................................... 226
Aprendizado não supervisionado......................................................................... 228
Como funciona o aprendizado de máquina............................................................... 228
Dados para aprender........................................................................................... 228
Modelo estatístico............................................................................................... 230
Dados desconhecidos.......................................................................................... 230
Exemplo de análise de sentimentos: classificando avaliações de produtos.................... 231
Obtendo avaliações de produtos........................................................................... 231
Limpando os dados............................................................................................. 233
Dividindo e transformando os dados................................................................... 235
Treinando o modelo.............................................................................................237
Avaliando o modelo.............................................................................................237
8 Python para Ciência de Dados

Predizendo tendências de ações................................................................................. 240


Obtendo os dados................................................................................................241
Derivando features de dados contínuos................................................................ 243
Gerando a variável de saída................................................................................. 244
Treinando e avaliando o modelo.......................................................................... 245
Recapitulando.......................................................................................................... 246

Índice remissivo..................................................................................................... 247

Você também pode gostar