データの可視化

pandas によるデータ操作

Maggie Matsui

Senior Content Developer at DataCamp

ヒストグラム

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

犬の体高のヒストグラム。 最も小さい犬は20cm未満で、最も大きい犬は70cmです。 最も一般的な犬の高さは50~60 cmです。

pandas によるデータ操作

ヒストグラム

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

前のスライドで示した犬の体高の同じヒストグラムですが、今回は20の細いビンです。

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

前のスライドで示した犬の身長の同じヒストグラムですが、今回は5つの幅広いビンになっています。

pandas によるデータ操作

棒グラフ

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
pandas によるデータ操作

棒グラフ

avg_weight_by_breed.plot(kind="bar")

plt.show()

犬種別に分けた、犬の平均体重(kg)の棒グラフ。 セント・バーナード犬は最も重く、チワワは最も軽い。

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

画面左側と同じ棒グラフですが、タイトルに「犬種別平均体重」が追加されています。

pandas によるデータ操作

折れ線グラフ

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()

スカリーという犬の体重の時系列折れ線グラフ。 体重は27〜36キログラムの間で変動します。

pandas によるデータ操作

回転軸ラベル

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

前のスライドで見たスカリーの体重と同じ折れ線グラフ。ただし、x軸のテキストは時計回りに45度回転しています。

pandas によるデータ操作

散布図

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

犬の体重と犬の体高の散布図。 犬の体高が高くなるほど、体重も増えます。 いくつかのクラスターがあります。 それらが犬種に対応しているのか気になります。

pandas によるデータ操作

グラフの重ね合わせ

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

plt.show()

同じグラフに犬の体高のヒストグラムが2つ表示されています。 1つは青で、もう1つはオレンジです。 オレンジのヒストグラムが青のヒストグラムを覆っており、何が起きているか見えにくくなっています。

pandas によるデータ操作

凡例を追加する

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

前のスライドと同じ、2つのヒストグラムを重ねたグラフに凡例を追加したもの。 「F」は女性を示し、青で表示されます。「M」は男性を示し、オレンジで表示されます。 何が起きているのか、まだ見えにくい。

pandas によるデータ操作

透明性

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()

前のスライドと同じ2つのヒストグラムを持つ同じグラフですが、今回はヒストグラムが透明です。 これにより、男性のヒストグラムの棒に隠れていた女性のヒストグラムの棒が見えるようになります。 しかし、まだ少し見栄えが悪いです。 Seabornコースを受講すべきです。プロットがよりきれいだからです。

pandas によるデータ操作

アボカド

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]
pandas によるデータ操作

練習しましょう!

pandas によるデータ操作

Preparing Video For Download...