Visualização de dados

Manipulação de dados com o pandas

Maggie Matsui

Senior Content Developer at DataCamp

Histogramas

import matplotlib.pyplot as plt
dog_pack["height_cm"].hist()
plt.show()

Histograma de alturas de cães. Os cães mais baixos têm menos de 20 cm e os mais altos têm 70 cm. A altura mais comum dos cães é entre 50 e 60 cm.

Manipulação de dados com o pandas

Histogramas

dog_pack["height_cm"].hist(bins=20)
plt.show()

O mesmo histograma de alturas de cães que foi mostrado no slide anterior, mas agora com 20 agrupamentos estreitos

dog_pack["height_cm"].hist(bins=5)
plt.show()

O mesmo histograma de alturas de cães que foi mostrado no slide anterior, mas agora com cinco agrupamentos largos

Manipulação de dados com o pandas

Gráficos de barras

avg_weight_by_breed = dog_pack.groupby("breed")["weight_kg"].mean()
print(avg_weight_by_breed)
breed
Beagle         10.636364
Boxer          30.620000
Chihuahua       1.491667
Chow Chow      22.535714
Dachshund       9.975000
Labrador       31.850000
Poodle         20.400000
St. Bernard    71.576923
Name: weight_kg, dtype: float64
Manipulação de dados com o pandas

Gráficos de barras

avg_weight_by_breed.plot(kind="bar")

plt.show()

Um gráfico de barras com o peso médio dos cães, em quilos, dividido por raça. Os cães São Bernardo são os mais pesados, enquanto os chihuahuas são os mais leves.

avg_weight_by_breed.plot(kind="bar",
    title="Mean Weight by Dog Breed")
plt.show()

O mesmo gráfico de barras que tá do lado esquerdo da tela, mas com um título extra que diz “Peso médio por raça de cachorro”.

Manipulação de dados com o pandas

Gráficos de linhas

sully.head()
          date    weight_kg
0   2019-01-31         36.1
1   2019-02-28         35.3
2   2019-03-31         32.0
3   2019-04-30         32.9
4   2019-05-31         32.0
sully.plot(x="date", 
           y="weight_kg", 
           kind="line")
plt.show()

![Um gráfico de linha que mostra o peso de um cachorro chamado Sully ao longo do tempo. https://assets.datacamp.com/production/repositories/5386/datasets/2c8d67de34db3bb02f07446792f1fe433c11dd67/line_plot.png O peso varia entre 27 e 36 quilos.

Manipulação de dados com o pandas

Rotação de rótulos de eixos

sully.plot(x="date", y="weight_kg", kind="line", rot=45)
plt.show()

O mesmo gráfico de linhas do peso de Sully visto no slide anterior, mas com o texto no eixo x com rotação de 45 graus no sentido horário..

Manipulação de dados com o pandas

Gráficos de dispersão

dog_pack.plot(x="height_cm", y="weight_kg", kind="scatter")
plt.show()

Gráfico de dispersão dos pesos dos cães x alturas dos cães. À medida que a altura dos cães aumenta, o peso também aumenta. Há alguns agrupamentos. Gostaria de saber se correspondem a raças

Manipulação de dados com o pandas

Sobreposição de gráficos

dog_pack[dog_pack["sex"]=="F"]["height_cm"].hist()
dog_pack[dog_pack["sex"]=="M"]["height_cm"].hist()

plt.show()

Dois histogramas de alturas de cães são mostrados no mesmo gráfico. Um é azul e outro é laranja. O histograma laranja cobre o histograma azul, dificultando a visualização do que está acontecendo.

Manipulação de dados com o pandas

Acrescente uma legenda

dog_pack[dog_pack["sex"]=="F"]["height_cm"].hist()
dog_pack[dog_pack["sex"]=="M"]["height_cm"].hist()
plt.legend(["F", "M"])
plt.show()

O mesmo gráfico com dois histogramas do slide anterior, mas com uma legenda. "F", de fêmea, é mostrado em azul, e "M", de macho, é indicado em laranja. Ainda é difícil ver o que está acontecendo.

Manipulação de dados com o pandas

Transparência

dog_pack[dog_pack["sex"]=="F"]["height_cm"].hist(alpha=0.7)
dog_pack[dog_pack["sex"]=="M"]["height_cm"].hist(alpha=0.7)
plt.legend(["F", "M"])
plt.show()

O mesmo gráfico com dois histogramas do slide anterior, mas agora os histogramas são transparentes. Isso permite ver as barras do histograma das fêmeas, antes encobertas pelas barras do histograma dos machos. Ainda está um pouco feio. Você deveria fazer os cursos de Seaborn porque os gráficos são mais bonitos.

Manipulação de dados com o pandas

Abacates

print(avocados)
            date          type  year  avg_price         size     nb_sold
0     2015-12-27  conventional  2015       0.95        small  9626901.09
1     2015-12-20  conventional  2015       0.98        small  8710021.76
2     2015-12-13  conventional  2015       0.93        small  9855053.66
...          ...           ...   ...        ...          ...         ...
1011  2018-01-21       organic  2018       1.63  extra_large     1490.02
1012  2018-01-14       organic  2018       1.59  extra_large     1580.01
1013  2018-01-07       organic  2018       1.51  extra_large     1289.07

[1014 rows x 6 columns]
Manipulação de dados com o pandas

Vamos praticar!

Manipulação de dados com o pandas

Preparing Video For Download...