每天學一點資料科學 Day 3(資料觀察)

更新於 發佈於 閱讀時間約 6 分鐘
raw-image

以前做實驗或看論文時,通常在看資料或進行資料處理前我可能會先大致瀏覽一下資料的輪廓,或許會把它排個序來看看有沒有特別大或小的值,或許會觀察一下資料裡是不是有某個名稱出現很多次之類的。以上這些行為在資料科學裡也會有,當資料量巨大的時候肯定不太適合一個一個慢慢觀察,所以可以借助Pandas裡的一些工具來協助。


不免俗地先建立一個適合接下來練習的dataframe,是台積電從2月3日至2月18日的每日收盤價和漲跌。

import pandas as pd

df = pd.DataFrame(
{
"date": ["114/02/03", "114/02/04", "114/02/05", "114/02/06",
"114/02/07", "114/02/10", "114/02/11", "114/02/12",
"114/02/13", "114/02/14", "114/02/17", "114/02/18"],
"price": ["1070.00", "1095.00", "1110.00", "1115.00",
"1125.00", "1105.00", "1110.00", "1100.00",
"1090.00", "1065.00", "1065.00", "1085.00"],
"change": ["-65", "+25", "+15", "+5", "+10", "-20",
"+5", "-10", "-10", "-30", "+25", "+15"]
}
)

head()

取前幾列的資料進行觀察

head()可以截取dataframe中的前幾列資料來進行觀察,預設是5列

df.head() 
head()預設是顯示前5列

head()預設是顯示前5列

當然,在括號中填入其他數字就能獲得不同列數的資料:

df.head(3) 
在head()中輸入3,你就能得到前3列的資料

在head()中輸入3,你就能得到前3列的資料

tail()

取倒數幾列的資料進行觀察

tail()head()功能差不多,差別在tail()是截取倒數幾列的資料。它的預設值同樣是5列,也能自由調整想觀察的列數。

df.tail()
tail()預設是顯示倒數5列

tail()預設是顯示倒數5列

info()

顯示dataframe的詳細資訊
df.info()
raw-image

可以從輸出的結果看到有以下幾項資訊:

  • 欄位名稱
  • 欄位數量
  • 每欄的非空值數量
  • 每欄的資料型別

這些資訊可以讓我們對dataframe中的資料有個大致上的輪廓。

describe()

計算並呈現各項資料常用的統計值

當dataframe中同時有數值型 (Numerical)資料和和類別型 (Categorical)資料時,describe()會預設處理數值型資料。

在我的dataframe中,price和change兩項資料在使用時應該會是以數值的型別在操作,所以我先用昨天學的方法把這兩項資料分別轉為float(浮點數)和int(整數):

df["price"] = df["price"].astype("float")
df["change"] = df["change"].astype("int")

然後再使用describe()

df.describe()
raw-image

對於數值型資料,describe()會幫我們計算出以下幾項常用的統計值:

  • 數量 (count)
  • 平均值 (mean)
  • 標準差 (std)
  • 最小值 (min)和最大值 (max)
  • 第25、第50、第75百分位數 (25%, 50%, 75%)

各項資料究竟是集中或是分散?是常態分布或是偏重一邊?從這些統計值就可以大致上瞭解各項資料的狀況。

那類別型資料呢?

describe(include=["O"])

describe()有一個參數include可以選擇要處理的對象,以下是如何使用它來處理類別型資料:

df.describe(include=["O"])

# 也可以寫成下面這樣
df.descibe(include="object")
raw-image

對於類別型資料,describe(include=["O"])會得到以下幾項統計值:

  • 數量 (count)
  • 類型數量 (unique)
  • 最上方的資料 (top)
  • 出現頻率的最高值 (freq)

從輸出結果來看,在date欄位中有12筆資料,這些資料每個都不同而且都只出現1次,而最上方的資料是114/02/03。

sample()

隨機取出幾列資料

預設是隨機取出1列資料,在括號中填入數字可以決定要隨機取出的資料列數,例如df.sample(5)代表從df中隨機取出5列資料。

value_counts()

計算特定欄位中每個值出現的次數,並按照出現次數由多到少往下排列呈現。
df["date"].value_counts()
日期數量全部都是1好像不是個好例子

日期數量全部都是1好像不是個好例子

這個函數對類別型資料比較好用,可以馬上知道是哪個/些值的數量名列前茅。數值型資料雖然也能用value_counts(),但採用describe()來觀察平均數、標準差等常見的統計值顯然更好一些。


今天的內容在我之前直接拿Kaggle的鐵達尼號生存預測來看時就知道個大概了,但也是有一些不知道的,既然有不知道的那就值得學對吧!

感謝大家的閱讀!

avatar-img
0會員
3內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
施政宇的沙龍 的其他內容
終於不用傻傻地用for迴圈慢慢做字串處理跟型別轉換
merge是Pandas中合併表格的方法之一,透過實際執行來瞭解不同語法的用法。
終於不用傻傻地用for迴圈慢慢做字串處理跟型別轉換
merge是Pandas中合併表格的方法之一,透過實際執行來瞭解不同語法的用法。
你可能也想看
Google News 追蹤
Thumbnail
在資料分析過程中,透過衡量變數之間的線性或非線性關係,能有效探索數據集,篩選出重要特徵,並進行預測建模。本文介紹瞭如何理解數據、使用相關矩陣找出變數關聯性,以及利用互資訊評估變數之間的依賴程度,幫助資料科學家在建模過程中選擇適當的變數,提升模型效果。
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
🎗️本次主題成果展示:人力資訊分析 上集回顧 🔗EXCEL儀表板 | 人力資訊分析儀表板 #1 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #2 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #3 | 上手等級:入門🔗 🔗E
Thumbnail
國文必考!六書是什麼?口訣幫你快速判斷象形/指事/會意/形聲
Thumbnail
本文介紹了如何使用資料樞紐分析的功能來整理所需的資料,並設定圖表的中文字型,最後提供了繪圖的程式碼範例。
Thumbnail
日前在LINE社群,有網友提出一個問題,要把資料進行分析,用日期來計算出將對應的資料。 原始資料,密密麻麻的數據,都看不清楚了 放大一點點 要把這些資料不同『料號』的各種『狀態』依據『日期』進行分析。 有興趣可以下載試著挑戰看看:檔案下載 作法有很多種,當然也可以用函數處
Thumbnail
編輯的基本功,是對文字的敏感度。
Thumbnail
在資料分析過程中,透過衡量變數之間的線性或非線性關係,能有效探索數據集,篩選出重要特徵,並進行預測建模。本文介紹瞭如何理解數據、使用相關矩陣找出變數關聯性,以及利用互資訊評估變數之間的依賴程度,幫助資料科學家在建模過程中選擇適當的變數,提升模型效果。
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
🎗️本次主題成果展示:人力資訊分析 上集回顧 🔗EXCEL儀表板 | 人力資訊分析儀表板 #1 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #2 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #3 | 上手等級:入門🔗 🔗E
Thumbnail
國文必考!六書是什麼?口訣幫你快速判斷象形/指事/會意/形聲
Thumbnail
本文介紹了如何使用資料樞紐分析的功能來整理所需的資料,並設定圖表的中文字型,最後提供了繪圖的程式碼範例。
Thumbnail
日前在LINE社群,有網友提出一個問題,要把資料進行分析,用日期來計算出將對應的資料。 原始資料,密密麻麻的數據,都看不清楚了 放大一點點 要把這些資料不同『料號』的各種『狀態』依據『日期』進行分析。 有興趣可以下載試著挑戰看看:檔案下載 作法有很多種,當然也可以用函數處
Thumbnail
編輯的基本功,是對文字的敏感度。