Escolar Documentos
Profissional Documentos
Cultura Documentos
FICCD Apostila Cap04
FICCD Apostila Cap04
Trabalhar com dados é uma arte e uma ciência. Temos falado principalmente
sobre a parte científica, mas neste capítulo veremos um pouco da arte.
40
CAPÍTULO 4. TRABALHANDO COM DADOS
No exemplo dos filmes da Pixar, ainda não tínhamos informações quanto ao valor
de bilheteria do filme Soul. Portanto, gostaríamos de, por hora, remover essa linha
de nossas tabelas:
1 import pandas as pd
2
3 dados_starwars.dropna()
Note que o Data Frame original permanece o mesmo. Ele somente se altera quando
o salvamos da seguinte forma:
1 # antes de salvar com alteracao
2 print(dados_starwars.shape)
3 print(dados_starwars.dropna().shape)
4
Ou seja, saímos de uma tabela com 87 linhas e 8 colunas para uma com 50 linhas e
as mesmas 8 colunas. As 37 linhas que continham valores faltantes foram excluídas.
41
CAPÍTULO 4. TRABALHANDO COM DADOS
1 import requests
2 from bs4 import BeautifulSoup
3
Temos 2 problemas: Na linha 14, o conteúdo não condiz com o restante da tabela. E
a coluna 3 é um ‘lixo’ que está atrapalhando nossa análise. Vamos removê-las:
1 # selecionando linhas 1 ate 13 (indices 0 ate 12)
2 cresc_pop_nova = cresc_pop.iloc[0:13, :]
3
4 # novos nomes
5 cresc_pop_nova.columns = ['ano', 'populacao', 'crescimento_percentual']
6 print(cresc_pop_nova.columns)
42
CAPÍTULO 4. TRABALHANDO COM DADOS
1 # valor anterior
2 print(cresc_pop_nova["censo"].iloc[12])
3
4 # valor atualizado
5 cresc_pop_nova["censo"].iloc[12] = '2021'
6 print(cresc_pop_nova["censo"].iloc[12])
43
CAPÍTULO 4. TRABALHANDO COM DADOS
1 # antigo tipos
2 print(cresc_pop_nova.dtypes)
1 # novos tipos
2
Esclarecendo que o tipo object é algo que mistura texto com números. Isso pode
confundir na hora de fazer um cálculo, por exemplo. Além disso, existem diversos
tipos diferentes no Python. Vamos nos concentrar somente nos principais:
44
CAPÍTULO 4. TRABALHANDO COM DADOS
Por fim, muitas vezes temos interesse de parte dos nossos dados. Por exemplo,
em uma base gigante de clientes, podemos ter interesse somente naqueles com idade
maior ou igual a 40 anos. No nosso exemplo, vamos filtrar somente os dados a partir
de 1950 da seguinte maneira:
45
CAPÍTULO 4. TRABALHANDO COM DADOS
5 estados = Estados()
6 df_estados = pd.json_normalize(estados.json())
Vamos recuperar os dados sobre o valor real do salário mínimo como vimos no
Capítulo 3. Lembrando que também precisamos instalar essa biblioteca virtualmente:
1 pip install ipeadatapy
46
CAPÍTULO 4. TRABALHANDO COM DADOS
1 import ipeadatapy
2
Agora imagine que você tem um conjunto de dados com duas dimensões. Claro
que você gostaria de entender cada dimensão individualmente. Mas você pode
analisar ambos de forma conjunta. Isso será bem importante nos próximos Capítulos.
Por exemplo, considere um clássico conjunto de dados descrevendo o peso (em
libras) e altura (em polegadas) de adultos saudáveis:
1 import requests
2 from bs4 import BeautifulSoup
3
47
CAPÍTULO 4. TRABALHANDO COM DADOS
Com muitas dimensões, você tem interesse em saber como todas se relacionam
entre si. Porém, não é nada trivial realizar essa tarefa, uma vez que, como humanos,
já temos muita dificuldades em entender figuras tridimensionais. Além disso, nesta
realidade, não conseguimos ilustrar imagem com 4 ou mais dimensões. E no mundo
real, seu problema terá muitas dimensões. Mas não se preocupe, vamos por partes.
Vamos utilizar como exemplo um banco de dados clássico que é bem útil para o
treinamento de modelos de aprendizado de máquina. Veremos isso nos próximos
Capítulos. Especificamente, este banco de dados trata de informações coletadas
sobre diferentes flores de Íris. Não sabe nada sobre flores? A Figura 4.1 ilustra um
breve resumo do que precisamos saber para entender do que os dados tratam.
48
CAPÍTULO 4. TRABALHANDO COM DADOS
3 iris = datasets.load_iris()
4 iris_df = pd.DataFrame(data=iris.data, columns=iris.feature_names)
5 iris_df["especie"] = iris.target
6
7 # renomeando variaveis
8 # compr_sep: comprimento da sepala
9 # larg_sep: largura da sepala
10 # compr_pet: comprimento da petala
11 # larg_pet: largura da petala
12 iris_df.columns = ['compr_sep', 'larg_sep', 'compr_pet', 'larg_pet', '
especie']
13
14 # reordenando
15 iris_df = iris_df.iloc[:, [4, 0, 1, 2, 3]]
16
17 # reclassificando
18 iris_df.loc[iris_df["especie"] == 0, "especie"] = "Setosa"
19 iris_df.loc[iris_df["especie"] == 1, "especie"] = "Versicolor"
20 iris_df.loc[iris_df["especie"] == 2, "especie"] = "Virginica"
49
CAPÍTULO 4. TRABALHANDO COM DADOS
50
CAPÍTULO 4. TRABALHANDO COM DADOS
4 # renomeando
5 acoes_br.columns = ['B3SA3.SA', 'BBAS3.SA', 'ELET3.SA', 'EMBR3.SA', 'PETR4.
SA']
6 acoes_br.index.name = 'data'
51