視覺化你的資料

使用 pandas 進行資料操作

Maggie Matsui

Senior Content Developer at DataCamp

直方圖

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

狗身高的長條圖。最矮低於 20 cm,最高為 70 cm。最常見的身高介於 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()

各犬種平均體重(公斤)的長條圖。聖伯納犬最重,吉娃娃最輕。

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

與左側相同的長條圖,但多了標題「Mean Weight by Dog Breed」。

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

名為 Sully 的狗在一段時間內的體重折線圖。體重在 27 到 36 公斤之間波動。

使用 pandas 進行資料操作

旋轉座標標籤

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

與前一張相同的 Sully 體重折線圖,但將 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()

同一張圖上顯示兩個狗身高直方圖。一個藍色、一個橘色。橘色覆蓋藍色,難以辨識。

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

與前一張相同的兩個直方圖,但加入圖例。「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()

與前一張相同的兩個直方圖,但現在有透明度。可以看到先前被遮住的母犬長條。不過仍不太美觀。想要更漂亮的圖,建議學習 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...