iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 18
0
AI & Data

Machine Learning for Dummies系列 第 18

[Day 18] Hello Pandas (3)

  • 分享至 

  • xImage
  •  

今天來到了 Pandas 的最後一天,除了介紹第三種資料型態: Index 之外,也為介紹 Pandas 的其他功能。讓我們一起來看看吧!

Index

Index 這個資料型態在 Pandas 當中,是一個不能修改的陣列,也就跟 Python 當中的 tuple 很像。

建立一個 Index

x = pd.Index([1, 2, 3, 4, 5])

取值的方式跟過去介紹過的 Series 或 DataFrame 其實一樣

x[0]

會得到 1

x[2:4]

會得到 [3, 4]

我們可以針對兩個 Index 做集合的運算,像是 AND

y = pd.Index([1, 3, 5, 7, 9])
x & y

會得到 [1, 3, 5]

或是 OR

x | y

會得到 [1, 2, 3, 4, 5, 7, 9]
Imgur

小試身手: 輸入資料

介紹完 Pandas 的三種資料型態以及基本的操作之後,讓我們來小試身手一下吧。

Pandas 可以讀寫多種不同格式的檔案,我們可以在下面這張表找到相對應的讀寫方法

Imgur

現在我們要來讀取我電腦中的 .csv 檔案,所以就用 pd.read_csv

import numpy as np
import pandas as pd
data = pd.read_csv("/Users/canopus/Desktop/sample_data.csv")
print(data)

得到結果

       Name  Age  Height  Weight Marriage Own Cars
0      Adam   20     165      69       NO       NO
1    Barton   32     169      77       NO      YES
2     Clark   28     177      80      YES       NO
3   Derrick   24     160      75       NO       NO
4  Frederic   24     162      66      YES      YES
5   Gabriel   28     177      60      YES      YES
6    Harvey   20     192      98       NO      YES
7       Ira   32     180      60      YES      YES
8     Jacob   28     163      62       NO       NO
9      Kerr   31     180      78      YES      YES

Imgur

小試身手: Pivot table

接下來,我們來試試看大家常在 excel 裡面做的事情:利用 pivot table 來分析數據。

假設我們要來看看有多少人擁有車子、多少人沒有車子,這時候我們可以定義 pivot table 的欄位為Own Cars 裡面的值,這裡的話就是 YESNO

接著,我們可以來定義一下列的資料要怎麼呈現,這裡我們就很簡單的計算 Name 的數量即可。寫成 Pandas 裡面的式子會是下面這樣

pd.pivot_table(data, values=['Name'], columns=['Own Cars'],  aggfunc='count')

會得到結果

Own Cars	NO	YES
Name		4	6

假設我們今天突然很有興趣要分析有結婚 v.s. 沒有結婚的人口數據組成,這裡一樣來定義一下欄位,就是為Marriage 裡面的值 YESNO

在不同的列上面,我們希望呈現 Age, Height, Weight 的平均值,因此這裡除了設定我們要看到 values 之外,在後面我也定義了資料整合的方式 aggfunc=np.mean,代表著我們取平均值。

寫成 Pandas 裡面的式子為:

pd.pivot_table(data, values=['Age','Height','Weight'], columns=['Marriage'],  aggfunc=np.mean)

會得到結果

Marriage	NO		YES
Age			24.8	28.6
Height		169.8	175.2
Weight		76.2	68.8

Imgur

小試身手: 繪圖

Pandas 內建繪製資料圖表的功能,像是直方圖、散佈圖、圓餅圖等等,這裡我們先來試試最簡單的散佈圖

hist = data.plot.scatter(x='Age', y='Weight', c='#FF6606')

這裡我們定義了 x 與 y 軸要呈現的資訊,同時修改一下散佈圖上面圖點的顏色

Imgur


Pandas 的介紹就到這裡告一段落,接下來會介紹另外一個 Python 好用的繪圖 Library: Matplotlib

我們明天見囉!


上一篇
[Day 17] Hello Pandas (2)
下一篇
[Day 19] Hello Matplotlib!
系列文
Machine Learning for Dummies30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言