資料科學的應用場景
根據 Grolemund, G., & Wickham, H. (2017). R for Data Science. O’Reilly Media. 資料科學的應用場景與工具需求包含六個項目,分別是:
Import 資料載入。
Tidy 資料清理。
Transform 資料轉換。
Visualize 視覺化。
Model 模型。
Communicate 溝通。
其中 Import 資料載入、Tidy 資料清理加上 Transform 資料轉換又被合稱為 Data Wrangling,至於何謂 Wrangling?這是一種源自美國拓荒時期,於美國中西部生活的牛仔在圈趕牛羊馬時候所使用的繩索技巧,這也是有一個牛仔褲品牌叫做 Wrangler 的起源,現今多數的讀者可能已經沒有再看過以牛仔生活為主題的好萊塢電影,不過必定看過 DC Comics 極受歡迎的神力女超人(Wonder Woman)使用真理之索(The Lasso of Truth)的英姿,這個動作就是 Wrangle。
基礎的資料處理技法一覽
基礎的資料處理技法就如同結構化查詢語言 SQL 對關聯式資料庫資料表的資料操作保留字,像是:
檢視資料。
SELECT 選擇欄位。
WHERE 篩選觀測值。
ORDER BY 排序資料。
GROUP BY 分組聚合。
為了能夠示範上述這幾項基礎資料處理技法,我們先載入一個儲存在工作目錄中逗號分隔值檔案 movies.csv。
movies = pd.read_csv("movies.csv")
檢視資料
我們可以使用 DataFrame 類別所建立實例的四個屬性檢視資料:
shape 屬性:檢視外型。
dtypes 屬性:檢視各欄位的資料類別。
index 屬性:檢視每個觀測值對應的列索引(Row-index)。
columns 屬性:檢視每個變數對應的欄索引(Column-index)。
print(movies.shape)
print(movies.dtypes)
print(movies.index)
print(movies.columns)
除了以上述四個屬性檢視資料, 也能夠使用 DataFrame 類別所建立實例的四個方法檢視資料:
head() 方法:回傳前 n 列觀測值。
tail() 方法:回傳後 n 列觀測值。
describe() 方法:回傳數值類別欄位的描述性統計,包含計數、最小值、25 分位數、中位數、平均數、75 分位數與最大值。
info() 方法:回傳資料的詳細資訊,包含外型、資料類別與欄位名稱等。
print(movies.head())
print(movies.tail())
print(movies.describe())
print(movies.info())
選擇欄位
透過指定欄位名稱從資料中選擇欄位成為一個 Series。
print(type(movies["title"]))
print(movies["title"])
透過以 list 包裝多個欄位名稱從資料中選擇欄位成為一個 DataFrame。
print(type(movies[["title", "release_year", "rating"]]))
print(movies[["title", "release_year", "rating"]])
篩選觀測值
透過關係運算符生成一個由布林值組合而成的 Series。
print(movies["release_year"] >= 2020)
再藉由前面生成的 Series 從資料中篩選出對應布林值為 True 的列數。
print(movies[movies["release_year"] >= 2020])
排序資料
使用 DataFrame 類別所建立實例的 sort_values() 方法依據欄位的大小遞增、遞減排序。
print(movies.sort_values("release_year"))
print(movies.sort_values("release_year", ascending=False))
使用 DataFrame 類別所建立實例的 sort_index() 方法依據列索引(Row-index)遞增、遞減排序。
print(movies.sort_index())
print(movies.sort_index(ascending=False))
分組聚合
選擇欄位並直接使用 Series 類別所建立實例的聚合方法,例如 sum()、min()、mean()、max() 或 count() 等獲得指定欄位的聚合函數計算結果。
print(movies["rating"].mean())
使用 DataFrame 類別所建立實例的 groupby() 方法對指定欄位取獨一值且排序,然後選擇欄位並使用聚合方法,獲得指定欄位的分組聚合計算結果。
print(movies.groupby("release_year")["rating"].mean())
掌握基礎的資料操作技巧之後,我們就能夠在下次的電子報中介紹進階的資料操作技巧。第三十六週約維安計畫:基礎的資料處理技法 來到尾聲,希望您也和我一樣期待下一篇文章。對於這篇文章有什麼想法呢?喜歡😻、留言🙋♂️、訂閱📨或者分享🙌
約維安計畫學員專區
約維安計畫學員可以點選下列連結將本篇文章完整的 Google Colab 複製到自己的 Google Drive 之中: