McKinney Python
McKinney Python
jupyter
Jg
Prefácio 3
eeeeeretas
19
........ eco
Capítulo 1 = Informações preliminares.............[Link]
1.1 De que se trata este livro? aerea cera enani racer na aerea racao 19
ser
20
Python como aglutinador
............ eeasieeaaeraatereaneneaaniaaaaenaeacenanoa
Resolvendo o problema de “duas linguagens” .....eirereeereeneriaerieeateeneacenos 21
21
ciic essenciais...
1.3 Bibliotecas Python eeerereraeearenaaeacaarcananoa 22
NumPy......... rcrearaearaearararentaanaaianarenaa caca cace ra rera cenas ara neaa atra ireaernaaaans 22
sis cc reta
matplotib.......... rrececaiecececenta ca caaacen tenra ranacaneaaceraraaenaecaneereentns 25
IPython e Jupyter....... ceeneaeaereneaarererarearataara care rerareranentaos 25
SciPy ri crrcreanteaareacaatenanea cantante aerea aaa area ra aaa aaa acerca acena eae ceu ta carece a
tenaranaa nana 26
scikit-learn.......... ccrscerecereaierreaeaeaaaeacaarea aerea ra caca aeaeaer ea an ca car teca ia carater 27
canarease
ie
statsmodels........... setecentos tee reeeenaaceaeaeneertaeaacenea ca nacecarenea ca nenesaneaaranasacananas 27
configuração...
L4 Instalação e eeeeeereeeecerereneeceaeeaeaerenaaceneianatanes 28
Windows... rea sertacieaciereeneaeaaenaaaaaa aa aeaaaaeaacen neon area nai iana iene ieaeranenaada 28
Apple (OS X, MacOS)... 29
Python...
canaa ca naea reatar menta
texto...
Python 2 e
Python aea renan eaaceetra 31
re
cre earaeen carrear
Ambientes de desenvolvimento integrado (IDEs) e editores de 31
e
........ erre tera
eeee
1.5 Comunidade conferências............. ecereeaeeeeeeeerer aeee ereeneneanana 32
1.6 Navegando pelo livro eaaeeea rece ranera arara erre reenrataanaa 33
e
Exemplos de código .......... ereererereneeer ca ea
aerea
eeneataacaa34
Dados
para os exemplos... eeeeataaa 34 er aaerateraeo
importação............
.... ires
Convenções de recrereeaeecerereeri ease cana enearanacnas 35
Jargão eeatecre aee tea reatantacaaerteataareeeaa anna a era c
erre a tea aaa nar tranan tantas 35
iiiceer
6 Python para Análise de Dados
eee
Introspecção
.......... rien cerea cercar aranee cara ara caraca 45
...... erre
rea rea cane ara ata nenecanaeanaraceanoa
Comando %run ieeceneenearea acao aaa raaaa rear rear eer ane aeacaceaarrenanoa 47
Executando código da área de transferência... 48
Atalhos de
teclado no
terminal... eceeeeareaeecereneearaeneaeans 49
ee atear tato 50
Sobre os comandos mágicos
............iiiiicereitieeiareaaee aaa
Integração com a matplotlib............... 53
rice
ceeneeeecerereeeceereeeaneas
...........
irei
2.3 Básico da linguagem Python eeeereereeeenaereatecereeeaeanas 53
linguagem...
ie
Semântica da 54
fluxo...reter
reerieenieeeraceneeeaereaaeieraneeaecenenanens
Tipos escalares............ eaeneereneaeea near aa ear nacar arena rr ranararerareraana 63
Controle de reireenicereerareceraeerarreeaareenereneneaarenencanteenea 72
rece
eeeeereereeerearreeraeeareeraeerenereeerieenaaçaa
Tupla...... ereeeraaeaeaearararta tara aaearas area ta raca aeneeaaanaaeaniceaaaiaenaaracacnanas 78
Lista... ssiseseseertraeerarerenceaeenaanea ca neeaaa aaa aaa na aan ana aa caa tanta anna reatar ane aaaaaa rent
a
nenneaa 82
Funções embutidas para sequências... rereeearereeeeeereereneerecerererenereas 88
............. score
List, set e dict comprehensions cerereereaerereneeeeraeanens 97
3.2
Funções... eeracer tea cenentaaaaareneaae ane cera na canaen era tona a aeee eaeraeareneenena 100
er
Namespaces, escopo locais ......... ee
e funções eererrereeraeaiereerareareeerererrerrererenteres 101
Devolvendo diversos valores.............
sc
eaeaereeracerereeererrarerereriranis 102
Funções são objetos
.......... reereerereraecer ieeanaeneenaerenacenenenaaaaaraetanas 103
............ ecran errar
ea
retrato
rerncerenaaa 105
Currying: aplicação parcial dos argumentos ............. 106
Geradores... iseaeecaeceaeerearaea rare ea reee ea raaereeanaa ea en ea caenaaenenareneiaas 107
e exceção...
irei
Erros tratamento de erentereerameeaea ir enereee care eereeenaraa Ho
3.3 Arquivos e o sistema operacional.............. eeceeerereeeeieeerera eretas 13
Bytes e Unicode com
Conclusão...
arquivos... eeereeceeerereecaerenerenerraracnans 17
3.4 irreeeeeeeeeaceaeeeaaaceaaaiaa te aneaa eae iaaaeaaanaaatacaeraeatacanaaas 19
siri
iii
Criando ndarrays.......... ateerenaaerteaaaaaaaaaaa raras iara aaniaaeaaaaeananaça 124
Tipos de dados para ndarrays............c 126
iii
aeeiestaerareaanicaianeaaiaatananas
........... iene
ereta
Aritmética com arrays NumPy reearer ata ancareraarenaaneaanands 129
Indexação básica e fatiamento ...........c eee recentes 136
131
Indexação booleana
............ raaaaaseae renina acerereeraaada
Sumário
sirene
Indexação sofisticada... eeereeeeereraeant aerea eeaee tener are rea nenaenaaaaasereneeeerenererers 140
Transposição de arrays e troca de €IxOS............ii 142
4.2 Funções universais: funções rápidas de arrays para todos os
elementos ..................... 144
ir
ii
Métodos matemáticos e estatísticos
.............i ierererereeaerecaaaerena eee erereraraatas 150
Métodos para arrays booleanos ............. 152
rr conjuntos...
rcrrceeeiaacaarerarerrrerariereeaneaererenanios
Ordenação... irtereerrreeaeateasacacaaieeaaaaaaaea arara rece na ceras ea eaea rara eae rasenenaaeaasanaies 153
Unicidade outras lógicas de
e
erererecerereenas 154
arrays... remetem
;
4.4 Entrada e saída de arquivos com 155
4.5 Álgebra linear... series eee errar 156
ce
teeeeateeree sieeeaeerereaeretts
vez...
4.6 Geração de números pseudoaleatórios.............. ceeetenrererereererareaaneos 159
4.7 Exemplo: passeios aleatórios ..........eeieeeereeeeearenaeaieceneiaraaeaietaaaare re enerereenaeaerera 161
sis
Simulando vários passeios aleatórios de uma só 163
4.8 Conclusão... rreeereereiereaeeanerarae aeee rereataeneaeneaaneneaenenererasteneos 164
ic
rr
Series... rrreeeererererteatrarenrerarreaea aeee tna a anca acne ana anne aaa sena cana aaa eae icone ent ea cen nennana 166
DataFrame............ 171
er
rreerierraaaaaeeaanaranaaa center aan tanta rece a cen tenaaennranana
Objetos Index .......... rreereenirenaseeaseaceaeceraecenereea ear aiena ta naraene cre neneeaaaasnntnas 179
5.2 Funcionalidades essenciais...
si
reeeeereerereaeeeeeeanaaeneirererareeeneneanes 181
Reindexação ............ iiiierertie resete ira reraaeaeeaarecaaaeaa nara raras iaeeeeraneaaates 181
Descartando entradas de um
eixo... ietereeeeeeereenecerererearaaceneeeeeeaeneas 184
filtragem...
e
Indexação, seleção e rerereeeeerenereaeaceraeereeeatanas 186
Índices inteiros... ie rereteeetermeeeeeeetee ae eairaeaeeteeatatiaataetre eee reeteeereeereartras 192
Aritmética e alinhamento de dados.............. 193
reinar
ieeeteeeeeerreceieeeeaeeeaos
Aplicação de funções e mapeamento... ceaearereceeceas 200
Ordenação e classificação... 203
eae
ierseeriaretateecaaeieaeniceeeerenereeeenatenanracannes
...............iieere
descritivas...
Índices de eixos com rótulos duplicados 207
5.3 Resumindo
e
calculando estatísticas 208
Correlação e covariância ........
ces 212
pertinência...
iecerereaaeesaseeaeeeaaasaerarerae assar eia eniaenaaracaceaenea
iii
Valores únicos, contadores de valores e 214
5.4 Conclusão... eeraeererereeraeeeeaeacaneeeaeaeaaa caneca canaara caca rarecacereneareratanas 217
aaa
6.1 Lendo e escrevendo dados em formato-texto 218
............serceseceerenerenea
partes... esteira
errei
Lendo arquivos-texto em 226
iriam
............
teens
Escrevendo dados em formato-texto 228
.......... rir
Trabalhando com formatos delimitados... 230
eee
Dados JSON eeereeeeeeeneearecereera aeee rece ereraranaereereseeerere tratada 232
XML e HTML: web scraping............. aeaeaereereeeetas 234
rciceaeee
8 Python para Análise de Dados
.............
eee
6.2 Formatos de dados binários eerrereeneearere ceara ereta rnsatnioa 239
Usando
oformato HDFS5...........
Excel...............
eneretereanoa 240
ice
Lendo arquivos do Microsoft rereereeeeeerereneneeaas 242
6.3 Interagindo com APIs web
............ 244
dados...
cererreeaereareeaeneneeaeeeaeeeaeeeenanatas
6.4 Interagindo com bancos de 245
tree
eeeerercerereeereneerereereeaaenes
6.5 Conclusão... 247
eee
ertereaararerarerararer aaa eare area eae eaenaaeaaa aan areas aerea sua recarans
es
Transformando dados usando uma função ou um 257
valores...
eee
Substituindo receeeeeerarearereaacerarereaaara aerea ones ease earasrcan teres 260
Renomeando
os
índices dos
eixos... 261
eres
rrraeeeerereraerrerereraereaerarea
Discretização e compartimentalização (binning)............. 263
eee
Detectando e filtrando valores discrepantes
.............. 266
Permutação e amostragem aleatória... eeeeeceeeeareceneeenana 268
cr rama
Calculando variáveis indicadoras/dummy........... 269
7.3 Manipulação de
strings... eee eeeeeneeaereararaceeerararaereeerneeeneanas 274
string...
eee
Métodos de objetos eeeecereeearererareoraceararaeareraraanaa 274
Expressões regulares... 276
pandas...
rreeareereeceareeeaneneneearentenenecerrarearaaa
Funções de string vetorizadas no 280
7.4 Conclusão... reeerceeareeeneraeraaaenera recta eae aaa ana
a e e ra rae
near enaaaiaaaas 283
e reformatação................................
Capítulo 8 = Tratamento de dados: junção, combinação 284
8.1 Indexação hierárquica... rrereceerrererereererararnear nene arereria 284
níveis... ceaeeearenreerereeercereeaeraa
arara ras
reencontra
nível................
eres
ear
Estatísticas de resumo por 289
Indexando com as colunas de um DataFrame 290
dados...
dados..............
8.2 Combinando e mesclando conjuntos de 291
Junções no DataFrame no estilo de bancos de 292
a
Fazendo merge com base no
Índice... eeerererererraaereenreaos 298
eixo...
recreio
eee
Concatenando ao longo de um 303
e
eeereneeeeeecerenereereeanana
Combinando dados com sobreposição... 309
8.3 Reformatação e pivoteamento
............ ireeeeerereereneecararrenerrereeneaeneaas 31
Reformatação com indexação hierárquica... 311
“longo”...
Fazendo o pivoteamento de um formato “longo” para um formato “largo” ............... 315
Pivoteamento do formato “largo” para o formato 319
8.4
Conclusão... ceara cana a aaa eae a rea 321
Sumário
aan
Capítulo 9 = Plotagem visualização 32
9.1 Introdução rápida à API da matplotlib............... 323
..........eeree seara
..........e aeee
Figuras e subplotagens araeaenaceaneraner race earacentereenteoa 324
Cores, marcadores
e
estilos de linha crateras 328
Tiques, rótulos e legendas... icieaericar errante eneataeaetaracaas 330
sr
linha... eee
Anotações e desenhos em uma subplotagem............i ieeereceeereecereereais 334
Salvando plotagens em arquivos...
ierrecaeeeareeereraeerreereaeeeneacetcaeteas 336
Configuração da matplotlib.............. ee eerrrereertns 337
crer
iii
9.2 Plottagem com o pandas e o seaborn
Plotagens de ............ reereeererenaeeaanaoa 338
retieereieeaneceeeereeeeaereaeeceaarecareceneneaartanos 338
Plotagem de barras... cerertrieierener trace naeeearea catar ca reaearaecaraaeaanes 341
Histogramas
e plotagens dededensidade... eeeaeecenenaeeees 346
Plotagens de
dispersão ou
creator
pontos..............
...........c ie
348 ceeeacenatis
Python...
Grades de
faceta e dados de categoria eeeiireeeareeeeeenerceeeos 350
9.3 Outras ferramentas de visualização de 352
9.4 Conclusão... terrace reta eaa ee traea tenra aaee aerea nara ertananta 353
re
iii
10.3 Funcionamento de GroupBy ........... e seremeeseereeeceseererecemeecereeasesereeeeeareeeeeereenes 355
Iterando por grupos
........... erticerracerteceecaneraneneacoeaceneaentoecaraeacaerararteas
Selecionando uma coluna ou um subconjunto de colunas................
359
361
Series...
ires
Agrupando com dicionários e ererereeetaeereereeneraneaeans 362
Agrupando com funções... 363
índice...
eeeneraeacereea ceara carne araeeneneneiis
eee................iis
Agrupando por níveis de eecemeneeeeneaarertaneaerenecereeanos 364
10.2 Agregação de dados............. 365
funções...
ererearerer rare ieere re eeacaeeaenetaos
Aplicação de função nas colunas e aplicação de várias 367
genérico...
Devolvendo dados agregados sem índices de linha 371
eee aeee
10.3 Método apply: separar-aplicar-combinar 372
Suprimindo as
chaves de
grupo... 375
Análise de quantis e de buckets
........... ii
saeeeerecereeaaieeeracerieeeeareraea renais 376
een
es
Exemplo: preenchendo valores ausentes com valores específicos de grupo ................. 377
Exemplo: amostragem aleatória e permutação............i 380
grupos... isentas
Exemplo: média ponderada de grupos e ..............
ir
correlação 382
Exemplo: regressão linear nos 385
e
10.4 Tabelas pivôs e tabulação cruzada.............. reeeereee re eeeneaenararaceada 386
Tabulações cruzadas: crosstab............. creeerieecaaeeenenere rece ricentnerenns 389
10.5 Conclusão............
erre ereta cerca raca iaaa aaa ane carareuarareuer arena casrerere 390
hora...
Capítulo 11 = Séries temporais 391
cereais
11.1 Tipos de dados e ferramentas para data e 392
Conversão entre string e datetime............. 393
sirene
11.2 Básico sobre séries temporais.............cieeeieeeeeeaeeer 396
area area ereereranterennearits
Indexação, seleção e geração de subconjuntos.............. 398
10 Python para Análise de Dados
eee
ereeeeerereneacareaeeaaeneaentaerenteeneroa
Frequências e offset de datas... isa eeareneeraeaaraaanianeeeneacaitaãa
Deslocamento de datas (adiantando e atrasando) ..........ereterterererererieesa
407
409
11.4 Tratamento de fusos
horários... eerteeeeererenere rea reeenecarreraerenea 413
Localização e conversão dos fusos horários... reeecneaaceirrereias 414
eee
Operações com objetos Timestamp que consideram fusos horários
................ 418
417
Operações entre fusos horários diferentes... eiaieecteeaaeninia
11.5 Períodos
e
aritmética com períodos... cerereaereereneans 419
Conversão de frequência de
Frequências de período
períodos...
trimestrais...
eeerereereceecereeeeeeeanos 420
422
arrays... vice-versa)...
reereceeecerreraceeeneeaaaido
eee eee
Convertendo timestamps para períodos (e 424
Criando um PeriodIndex a partir de 426
11.6 Reamostragem e conversão de
frequências... 429
Downsampling
Upsampling e
...........
interpolação...
erereee racer iraa tata
eereeerrereeaetearaneeeearrecarecens
caraaaaeaareaereas 431
434
Reamostragem com períodos... rerreeneeeaereearerraneenene eres 436
móvel...
ponderadas...
11.7 Funções de janela ereereeereerecareeareaeaaceneneereereenena 438
eee eee
Funções exponencialmente 441
Funções de janela móvel binárias........... iene eneriaaeeeraracaareraeaaereaa 442
ieerrar
Capítulo 12 = Pandas avançado ................eeerrreenereersermesereeenseerreerereneeermseererereserseerreversserees 446
erece
.............
12.1 Dados categorizados irerereeeeneeeeeeareranecaneeeneaaeaeacaenataaaatada 446
Informações básicas e motivação
............ eerreerrerereereereeenaeecereaeaeeceneeaa 446
Tipo Categorical do
pandas...
Processamentos com Categoricals.............
raaeeaceearaeeraceena 448
eeeiereerieeeeaeeenencas 451
Métodos para dados
12.2 Uso avançado de GroupBy ericeira aeee
........... eee
categorizados... reeeeeaeeceneneneans 454
458
eia eres
aeereeeareeeeren
Transformações de grupos e GroupBys “não encapsulados”............. 458
ienes
grupos...
Reamostragem de tempo em 463
métodos...
12.3 Técnicas para encadeamento de 465
12.4
Método
pipe...
Conclusão...
ceeeratereacrenacea ines areeaaeeaaa rente racanaaaaaenereanos 466
eee
Patsy............ieeieiai
Transformações de dados em fórmulas do 476
Dados categorizados e 0 Patsy
.......... ireeateteecece reiterar 478
is
ic
Sumário 1
rir
13.3 Introdução ao statsmodels............reeeerereree ereto erereere rear erae err erenaraneaanara 482
Estimando modelos lineares............ ererreneeee raras ereeeearreeerarearanão 482
Estimando processos de séries temporais... eeeremaettaecetee cereais 486
ao scikit-learn...........
irritar
eee
13.4 Introdução are etetecaereerteaeaa arara 487
13.5 Dando prosseguimento à sua
educação... ceererereaaneaoa 492
puro...
eee
Capítulo 14 = Exemplos de análises de dados..... 493
ceia
Contando fusos horários em Python 494
pandas...
IM...
Contando fusos horários com o ceareraereens 497
2010...
ee
14.2 Conjunto de dados do MovieLens 505
ciecereeerereeaeatanacana
Avaliando
adiscrepância nas avaliações... ereereaeceereerere reter 511
eee
e
eee
14.3 Nomes bebês americanos de 1880 a 513
Analisando tendências para os nomes............. eeneearaaeceaeaena 519
2012...
14.4 Banco de dados de alimentos do USDA............. 529
14.5 Banco de dados da Federal Election Commission em 536
Estatísticas sobre as doações de acordo com a profissão e o empregador .................... 540
estado...
.................
Separando osvalores das doações em buckets...............
rs iererrera 543
irc
Estatísticas sobre as doações conforme o 546
14.6 Conclusão... creaneaneaeaeeaaea ca ceaca rrenan aerea reaen eae raaraeacanaeans 547
a
eira
Apêndice À = NumPy avançado rrrrsseeressereseersereerraseorarserarseremsaaraerersscsana «548
A.1 Organização interna do objeto ndarray
........... 548
A hierarquia de dtypes do
A.2 Manipulação avançada de
NumPy...........
ereta
arrays...ieeieereereerereaeeeeariererneaeaoa
rreerereerenerirerereeeeieenerceaaeaoa 551
eaereerenecerararancans 549
Redefinindo o formato de
Ordem
arrays...
C versus ordem Fortran... ieeeeaereaeeareceerereerecaraeena
551
553
arrays... ice
put...
:
Concatenando
e separando ceceeranea eae ceereaenareeaananas 554
Repetindo elementos: tile e
repeat...
Equivalentes à indexação sofisticada: take
eeeererereareecereneaaateenea
e
557
559
A.3 Broadcasting...
irritar 561
eee
ee ceatareneneraaaen ana aa rea aa are rar neon tran treat renaneacaana
iii
Definindo valores de array para broadcasting.............. 566
A.4 Usos avançados de ufuncs ............ci rierereeeerreerema res enaraeea rena rear raneaaeeoa 567
Métodos de instância de ufuncs............
terceira eeeeraeneraacearecereaeeenrraras 567
Escrevendo novas ufuncs em Python ..............iieeerereeereeereraenereaaa 570
e registros...
eee
A.5 Arrays estruturados de seisieceaacercaeerenirereeaereacaareatas 571
aninhados campos multidimensionais............ 572
ee
dtypes e
Por que usar arrays estruturados?
........... reecerrerereraerecareeerceraaceatreraea 573
serenata
A.6 Mais sobre ordenação............ceeeereraeereaeneraeareracaerare cer eneeenirernerereaareaenieaa 573
ir
Ordenações indiretas: argsort e lexsort............ 575
Algoritmos de ordenação alternativos ............ cceeieerececeeaaceerr aereas 577
o
2 Python para Análise de Dados
e arrays...
Criando objetos [Link] personalizados com o Numba............... 582
ii
A.8 Operações avançadas de entrada saída com 583
arrays... eretas
Arquivos mapeados em memória.......... eereeecaaceca 583
HDES
e outras opções para armazenagem de 584
A.9 Dicas para o desempenho .............. reereeereareeaecerr ear areaeera ceara 585
À importância da memória
contígua... acerca aeeneeaarrreeneos 585
eee
cerieererecerereeaceraereanas
e
Pesquisando e reutilizando histórico de 588
Variáveis de entrada e de
B.2 Interagindo com o sistema
saída... eeeneeenetarereaeaeeererreacanas
operacional...
589
590
Comandos do
shell e aliases
..........
diretórios...
eeeecerertecereeererereararaaecaanecaos 591
software...
Sistema de marcadores de esterereeeeeererereacacearaeios 593
B.3 Ferramentas para desenvolvimento de 593
Depurador interativo... erererrerererereeaseraraenereier era tareaeneaaeaeeaenacareeanenetanoa 594
Medindo o tempo de execução de um código: %time e %timeit..............i 599
Geração básica de perfis: %prun e %run -p......ciiieeieeeciieeereeentacenas 602
Gerando perfil de uma função linha a
linha... sereias 604
iara
B.4 Dicas para um desenvolvimento de código produtivo usando o IPython.................... 607
ie
módulos..............
ceiaIPython..............
Recarregando dependências de 607
Dicas para design de
código...
B.5 Recursos avançados do IPython............
rareaeeaeneeraeaieneaareneeenens
ccereaceeeneeeeceeacaneeeaas
608
610
Deixando suas próprias classes mais apropriadas ao
eee
610
Perfis e configuração... iiieieiirreceeerareseraer eee eaeaneeeeeneieeeeneeaneas 611
B.6 Conclusão
....... rara aeee aaa a arara erre e erra 613