《從零開始的資料科學筆記》Day#3: Pandas入門

更新 發佈閱讀 8 分鐘
raw-image

🐼什麼是Pandas?

Pandas 是 Python 最重要的資料處理與分析工具,名稱來自 "Panel Data"(跨時間的結構化資料),由 Wes McKinney 開發。 它提供兩個核心資料結構: Series:一維的資料列(類似 list) DataFrame:二維表格資料結構(像 Excel + SQL 的合體)

Pandas能做什麼?

只要你是針對"結構化資料"做處理,那麼只要你想得到的Pandas都能做!!!

raw-image

為什麼資料科學家一定要學Pandas?

1. 🚀 效率高:數據前處理的瑞士刀

在模型訓練前,資料通常是:

  • 有缺失值
  • 欄位混亂
  • 格式不一致
  • 包含噪音

這些都可以透過 Pandas 快速清理、轉換、篩選。 🎯丟入模型訓練前的資料一定要先處理過喔!!!

2. 💡 可結合其他套件

Pandas 是資料科學的中樞神經,可與以下套件無縫整合:

  • 📊 Matplotlib / Seaborn(視覺化)
  • 🤖 Scikit-learn(機器學習)
  • 🔢 NumPy(數值處理)
  • 🧪 Statsmodels / SciPy(統計分析) 💡 跟NumPy一樣,許多應用套件也是基於Pandas的資料處理架構來開發的,可以適用於很多常用套件。

3. 👩‍💻 寫法類似 SQL + Excel

如果你熟悉 Excel 表格或 SQL,學 Pandas 將會得心應手:

df[df["Age"] > 30]         # 相當於 SQL 的 WHERE Age > 30
df.groupby("Region").mean() # 相當於 GROUP BY + AVG

4. Pandas在資料科學中的位置

[ 原始數據 ] → Pandas → [ 清理 / 結構化 ] → NumPy / Sklearn / XGBoost / 可視化 💡 由此可看出Pandas在整個資料處理流程中是不可或缺的一部分!!!

小節: 為什麼要學Pandas?

  1. ✔ 是所有資料工作的基礎
  2. ✔ 比 Excel / SQL 更靈活強大
  3. ✔ 實務中無可替代:90% 的時間都用來處理資料
  4. ✔ 與 Python 生態系無縫整合(ML、統計、視覺化)

初識Pandas: Data Cleaning & Filtering

1. 資料結構: pd.Series

Series 是 一維的標籤化陣列,像是加了index的 list 或 numpy.array。

import pandas as pd

s = pd.Series([10, 20, 30], index=['a', 'b', 'c']) # 建立pd.Series
print(s)

print(s['a']) # 取出 a 索引值
print(s.mean()) # 計算平均
print(s + 5) # 每個元素加

#輸出
a 10
b 20
c 30
dtype: int64

10
20.0
[15, 25, 35]

2. 資料結構: pd.DataFrame

DataFrame 是二維表格資料結構,就像是 Excel 表格或 SQL 資料表。

# 建立方法一
data = {
'Name': ['Amy', 'Ben', 'Cara'],
'Age': [22, 24, 23],
'Score': [85, 90, 88]
}
df = pd.DataFrame(data)

# 建立方法二(用Series)
s1 = pd.Series(['Amy', 'Ben', 'Cara'])
s2 = pd.Series([22, 24, 23])
s3 = pd.Series([85, 90, 88])
df = pd.DataFrame({'Name':s1 ,'Age':s2, 'Score':s3})
print(df)

# 輸出
Name Age Score
0 Amy 22 85
1 Ben 24 90
2 Cara 23 88

說明

建立DataFrame的方法其實有滿多種,但是都大同小異,只要使用自己方便順手的即可!!!

3. 找出缺失值: df.isnull()/df.isna() 與 df.notnull()

df = pd.DataFrame({
"Name": ["Tom", "Jerry", None],
"Age": [25, None, 30]
})

print(df.isnull())

# 輸出
Name Age
0 False False
1 False True
2 True False

說明

在資料處理過程中,找出缺失值跟空值是非常重要的事!!!

💡實際上,空值(None)和缺失值(NaN)是不同東西,在Python中一般以"None"代表空值,而"NaN"代表缺失值。在專案中使用時要特別注意兩者的使用時機與差異!!! 其差異與比較我會在另一篇文章中說明。

4. 處理缺失值: df.dropna() 與 df.fillna()

df.dropna()     # 刪除有缺失值的列
df.fillna(0) # 將 NaN 填入指定數值

說明

  • df.dropna(axis=0, how='any', inplace=False)
    • axis: 0為按照row刪;1為按照column刪
    • how: 'any'代表有一個na就刪;'all'代表全都na才刪
    • inplace: 是否直接替換原df中的值
  • df.fillna('要補上的值')

5. 條件篩選

df = pd.DataFrame({
"Name": ["Tom", "Jerry", None],
"Age": [25, None, 30]
})

df[df['Age'] > 25]

# 輸出
Name Age
2 None 30.0

說明

  • df['Age']: 透過欄位名稱來取值
  • df['Age'] > 25: 是一個布林值的條件
  • df[condition]: 把條件放入df中即可進行篩選值

6. 重設索引

df = df.reset_index(drop=True)

說明

  • df經過不同的操作之後,每一筆資料的index已經不再是從0開始的連續排序,尤其經過df.dropna()之後中間都會是一洞一洞的。
  • 透過df.reset_index()可將處理好的df重新編index,使其名符其實的成為一個新df。
  • 例如:
    • dropna()後的index: [1, 3, 5, 6, 8]
    • reset_index()後的index: [0, 1, 2, 3, 4]
留言
avatar-img
留言分享你的想法!
avatar-img
Ethan的AI學習筆記
4會員
28內容數
我是一個不務正業的資料科學家,從零開始學習的路途上跌跌撞撞,跌過許多坑,也撞過許多牆... 當有人迷失方向時,希望這些筆記可以成為你的指南針。
Ethan的AI學習筆記的其他內容
2025/06/07
再見NumPy 在學習完上一篇NumPy入門教學後,可以接著熟悉一下NumPy進階,這部分包含了許多資料前處理上常用的技巧和語法。 其實有更多的語法我沒有列出來,因為不只你們記不住,我也記不得! 這邊整理的都是比較常用的部分,其他函數等你們有用到的時候自然會知道~
Thumbnail
2025/06/07
再見NumPy 在學習完上一篇NumPy入門教學後,可以接著熟悉一下NumPy進階,這部分包含了許多資料前處理上常用的技巧和語法。 其實有更多的語法我沒有列出來,因為不只你們記不住,我也記不得! 這邊整理的都是比較常用的部分,其他函數等你們有用到的時候自然會知道~
Thumbnail
2025/06/07
NumPy(Numerical Python)是 Python 資料科學的根基,一個為處理數值資料與高效陣列運算而生的工具。在這套件的世界裡,矩陣(array)不再只是數學符號,而是資料操作的核心主角,從最基本的數列建立、重塑,到進階的數學與邏輯運算,它都是你駕馭資料的第一把鑰匙。
Thumbnail
2025/06/07
NumPy(Numerical Python)是 Python 資料科學的根基,一個為處理數值資料與高效陣列運算而生的工具。在這套件的世界裡,矩陣(array)不再只是數學符號,而是資料操作的核心主角,從最基本的數列建立、重塑,到進階的數學與邏輯運算,它都是你駕馭資料的第一把鑰匙。
Thumbnail
2025/06/07
✨ 每一位資料人,都是從零開始的 當初剛開始學習資料科學時,我也曾面對過無數的自我懷疑: Python 還不熟,怎麼寫程式解決實際問題? 學了NumPy,學了Pandas之後呢? 我學的真的夠多,可以應用在工作上了嗎? 這個錯誤訊息又是什麼意思? 為什麼結果都不是我想像的那樣? .
Thumbnail
2025/06/07
✨ 每一位資料人,都是從零開始的 當初剛開始學習資料科學時,我也曾面對過無數的自我懷疑: Python 還不熟,怎麼寫程式解決實際問題? 學了NumPy,學了Pandas之後呢? 我學的真的夠多,可以應用在工作上了嗎? 這個錯誤訊息又是什麼意思? 為什麼結果都不是我想像的那樣? .
Thumbnail
看更多
你可能也想看
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
pandas是用於資料操縱和分析的Python軟體庫。它建造在 NumPy 基礎上,並為操縱數值表格和時間序列,提供了資料結構和運算操作。 Pandas 的主要資料結構包含 Series 和 DataFrame 物件,由於 Pandas 本身基 Numpy 所以在使用大量資料運算時效能表現也優於原
Thumbnail
pandas是用於資料操縱和分析的Python軟體庫。它建造在 NumPy 基礎上,並為操縱數值表格和時間序列,提供了資料結構和運算操作。 Pandas 的主要資料結構包含 Series 和 DataFrame 物件,由於 Pandas 本身基 Numpy 所以在使用大量資料運算時效能表現也優於原
Thumbnail
如何用Python將DataFrame中的資料擷取維新的DataFrame?
Thumbnail
如何用Python將DataFrame中的資料擷取維新的DataFrame?
Thumbnail
本文介紹如何用Python繪製散布圖與迴歸線
Thumbnail
本文介紹如何用Python繪製散布圖與迴歸線
Thumbnail
本文介紹瞭如何使用 Python pandas 進行資料分析,包括如何使用 corr() 函數針對數字類型的欄位進行分析,以及如何刪除不需要的欄位和取得想要的小數位數。
Thumbnail
本文介紹瞭如何使用 Python pandas 進行資料分析,包括如何使用 corr() 函數針對數字類型的欄位進行分析,以及如何刪除不需要的欄位和取得想要的小數位數。
Thumbnail
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們以原有的資料表為基礎,融合不同的資料欄位。 以product作為index,融合quarter_1,quarter_2,quarter_3,quarter_4 這四個欄位,並且重新命名為quarter,並且將數值欄位名稱重
Thumbnail
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們以原有的資料表為基礎,融合不同的資料欄位。 以product作為index,融合quarter_1,quarter_2,quarter_3,quarter_4 這四個欄位,並且重新命名為quarter,並且將數值欄位名稱重
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News