[Python教學] Pandas:資料處理的利器

更新於 發佈於 閱讀時間約 8 分鐘

Pandas 是 Python 的一個強大數據操作與分析庫。它提供高效且靈活的資料結構,如 SeriesDataFrame,適合用於資料清理、操作及分析。在本教學中,我們將深入探討 Pandas 的核心功能,並以範例展示如何進行資料處理。


如果還沒有準備好Python的環境的話,我們推薦超好用的Python集成開發環境-PyCharm!安裝教學文章連結點此:[Python教學] 開發環境安裝與設定教學-Pycharm


1. Pandas 安裝與載入

如果尚未安裝 Pandas,可以使用 pip 進行安裝:

pip install pandas

安裝完成後,導入 Pandas:

import pandas as pd

2. Pandas 的核心資料結構

2.1 Series

Series 是一維的資料結構,類似於 Python 的 List 或 NumPy 的一維陣列,但具有索引。

import pandas as pd

# 建立 Series
data = pd.Series([10, 20, 30, 40], index=['A', 'B', 'C', 'D'])
print(data)

輸出:

A    10
B 20
C 30
D 40
dtype: int64

基本操作:

# 取值
print(data['A']) # 10

# 過濾
print(data[data > 20]) # 篩選值大於 20 的元素

# 運算
print(data + 5) # 每個元素加 5

2.2 DataFrame

DataFrame 是二維的資料結構,可以視為資料表格式。它是 Pandas 的核心資料結構。

# 建立 DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'Salary': [50000, 60000, 70000]
}
df = pd.DataFrame(data)
print(df)

輸出:

      Name  Age  Salary
0 Alice 25 50000
1 Bob 30 60000
2 Charlie 35 70000

3. 讀取與匯出資料

Pandas 支援多種資料格式的讀取與匯出,包括 CSV、Excel、JSON 等。

3.1 讀取資料

# 從 CSV 檔案讀取資料
df = pd.read_csv('data.csv')

# 從 Excel 檔案讀取資料
df = pd.read_excel('data.xlsx')

3.2 匯出資料

# 匯出為 CSV
df.to_csv('output.csv', index=False)

# 匯出為 Excel
df.to_excel('output.xlsx', index=False)

4. 資料檢視與摘要

檢視資料的結構與內容是資料分析的第一步。

4.1 基本資訊

print(df.head())       # 顯示前 5 筆資料
print(df.tail()) # 顯示後 5 筆資料
print(df.info()) # 顯示資料摘要
print(df.describe()) # 顯示數值欄位的統計摘要

4.2 檢查資料

print(df.columns)       # 查看欄位名稱
print(df.shape) # 查看資料維度 (列數, 欄數)
print(df.isnull().sum()) # 檢查缺失值

5. 資料清理

資料清理是分析過程中的重要步驟,包含處理缺失值、重命名欄位、刪除重複值等。

5.1 處理缺失值

# 填補缺失值
df['Age'].fillna(df['Age'].mean(), inplace=True) # 填補為平均值

# 刪除包含缺失值的列
df = df.dropna()

5.2 重命名欄位

df.rename(columns={'Name': 'Employee Name'}, inplace=True)

5.3 刪除重複值

df = df.drop_duplicates()

6. 資料篩選與操作

6.1 篩選資料

# 篩選特定條件
filtered_df = df[df['Age'] > 30]

# 篩選多條件
filtered_df = df[(df['Age'] > 25) & (df['Salary'] > 50000)]

6.2 新增與刪除欄位

# 新增欄位
df['Bonus'] = df['Salary'] * 0.1

# 刪除欄位
df.drop(columns=['Bonus'], inplace=True)

6.3 排序資料

# 依據某欄位排序
df.sort_values(by='Age', ascending=False, inplace=True)

7. 資料聚合與分組

Pandas 提供強大的分組與聚合功能,能輕鬆實現統計分析。

7.1 分組與聚合

# 按 'Department' 分組,並計算平均薪水
grouped = df.groupby('Department')['Salary'].mean()
print(grouped)

7.2 樞紐分析

# 建立樞紐表
pivot = pd.pivot_table(df, values='Salary', index='Department', columns='Gender', aggfunc='mean')
print(pivot)

8. 使用 Pandas 處理時間序列

Pandas 對時間序列資料提供良好支援。

# 將資料轉為日期型別
df['Date'] = pd.to_datetime(df['Date'])

# 篩選特定日期範圍
filtered_df = df[(df['Date'] > '2023-01-01') & (df['Date'] < '2023-12-31')]

9. Pandas 高效操作技巧

9.1 使用 Apply 函數

# 自訂函數應用於某欄位
df['Salary After Tax'] = df['Salary'].apply(lambda x: x * 0.8)

9.2 資料合併

# 左連接 (Left Join)
merged_df = pd.merge(df1, df2, on='Employee ID', how='left')

10. 小結

Pandas 是 Python 資料處理的強大工具,適合處理結構化數據。以下是使用 Pandas 的建議:

  1. 熟悉 SeriesDataFrame 結構。
  2. 掌握資料清理、篩選、分組、聚合等基本操作。
  3. 利用 Pandas 與視覺化工具(如 Matplotlib、Seaborn)結合進行資料分析與展示。

Pandas 是一個靈活且高效的資料處理工具,透過多練習與實戰,將能夠快速掌握資料處理技能,並應用於多種場景。

留言
avatar-img
留言分享你的想法!
avatar-img
追極光的北極熊|軟體工程師的小天地
9會員
150內容數
歡迎來到我的部落格!這裡記錄了軟體工程師的日常生活點滴,並分享程式設計與演算法的實用教學。無論你是初學者還是有經驗的開發者,都能在這裡找到深入淺出的技術解析與實戰技巧。此外,我也會分享工作中的心路歷程與學習心得,讓你不僅學到技術,更能瞭解軟體開發的實際應用與挑戰。希望透過這個平台,能與你共同成長,激發對技術的熱情!
2025/04/28
當我們開發程式時,功能能正常運作固然重要,但在資料量變大或執行時間變長時,效能就成為不可忽視的一環。尤其在 Web 應用、資料分析或科學運算中,程式跑得快與否,直接影響使用者體驗與系統成本。
2025/04/28
當我們開發程式時,功能能正常運作固然重要,但在資料量變大或執行時間變長時,效能就成為不可忽視的一環。尤其在 Web 應用、資料分析或科學運算中,程式跑得快與否,直接影響使用者體驗與系統成本。
2025/04/22
嘿,大家好!上篇教學文章我們做出了一個待辦事項清單,已經有點小工具的感覺了吧?今天我們要再升級,來做個「簡單記事本」。這個專案不只可以寫東西,還能存檔、讀檔,甚至換字體大小,感覺就像自己寫了個迷你軟體!
2025/04/22
嘿,大家好!上篇教學文章我們做出了一個待辦事項清單,已經有點小工具的感覺了吧?今天我們要再升級,來做個「簡單記事本」。這個專案不只可以寫東西,還能存檔、讀檔,甚至換字體大小,感覺就像自己寫了個迷你軟體!
2025/04/16
嘿,大家好!走到這一步,我們已經玩過 Tkinter 的基本招式、佈局、事件處理,還搞了些進階元件,應該有點信心了吧?今天我們要把這些功夫練成一套連招,來做個實用的「待辦事項清單」(To-Do List),順便聊聊怎麼把程式寫得更漂亮、更好用。準備好了嗎?這就上場啦!
2025/04/16
嘿,大家好!走到這一步,我們已經玩過 Tkinter 的基本招式、佈局、事件處理,還搞了些進階元件,應該有點信心了吧?今天我們要把這些功夫練成一套連招,來做個實用的「待辦事項清單」(To-Do List),順便聊聊怎麼把程式寫得更漂亮、更好用。準備好了嗎?這就上場啦!
看更多
你可能也想看
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
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 pandas 進行資料分析,包括如何使用 corr() 函數針對數字類型的欄位進行分析,以及如何刪除不需要的欄位和取得想要的小數位數。
Thumbnail
本文介紹瞭如何使用 Python pandas 進行資料分析,包括如何使用 corr() 函數針對數字類型的欄位進行分析,以及如何刪除不需要的欄位和取得想要的小數位數。
Thumbnail
本文探討了在使用 pandas 處理資料時應注意的幾個關鍵點,以及如何減少因資料型態問題而產生的錯誤,確保資料的原始意義得以保留。主要包括Pandas 資料處理深入解析,尋找CSV之外的數據儲存方案,以及優化資料處理策略。
Thumbnail
本文探討了在使用 pandas 處理資料時應注意的幾個關鍵點,以及如何減少因資料型態問題而產生的錯誤,確保資料的原始意義得以保留。主要包括Pandas 資料處理深入解析,尋找CSV之外的數據儲存方案,以及優化資料處理策略。
Thumbnail
題目敘述 題目會給定兩個pandas DataFrame作為輸入,要求我們將兩張資料表,依照原有的順序串接在一起。 題目的原文敘述 測試範例 Example 1: Input: df1 +------------+---------+-----+ | student_id | name
Thumbnail
題目敘述 題目會給定兩個pandas DataFrame作為輸入,要求我們將兩張資料表,依照原有的順序串接在一起。 題目的原文敘述 測試範例 Example 1: Input: df1 +------------+---------+-----+ | student_id | name
Thumbnail
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們以原有的資料表name欄位為檢查基準,刪除有缺失值None的 data rows。 題目的原文敘述 測試範例 Example 1: Input: +------------+---------+-----+ | s
Thumbnail
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們以原有的資料表name欄位為檢查基準,刪除有缺失值None的 data rows。 題目的原文敘述 測試範例 Example 1: Input: +------------+---------+-----+ | s
Thumbnail
繼「【🔒 Python實戰營 - Data Science 必修班】Pandas 資料清洗技 - 填補式」之後,我們已經學會怎麼填補空缺資料了,那這個章節我們來教您如何對某些欄位有條件的整形,有時候我們的資料來源某些欄位資料格式不一,甚至型態都不是正規統一的值,此時我們就需要針對這些值進行一些處理
Thumbnail
繼「【🔒 Python實戰營 - Data Science 必修班】Pandas 資料清洗技 - 填補式」之後,我們已經學會怎麼填補空缺資料了,那這個章節我們來教您如何對某些欄位有條件的整形,有時候我們的資料來源某些欄位資料格式不一,甚至型態都不是正規統一的值,此時我們就需要針對這些值進行一些處理
Thumbnail
Hi,大家好。我是茶桁。 上一节课中,我们学习了matplotlib. 实际上,我们已经进入了数据可视化阶段。 可是在上一节课中,所有的数据都是我们固定写好的,包括两个电影的数据展示的案例(柱状图和直方图),都是我们将数据手动写成了数据列表,然后直接使用。 在我们平时的工作中,不太有那么多的机
Thumbnail
Hi,大家好。我是茶桁。 上一节课中,我们学习了matplotlib. 实际上,我们已经进入了数据可视化阶段。 可是在上一节课中,所有的数据都是我们固定写好的,包括两个电影的数据展示的案例(柱状图和直方图),都是我们将数据手动写成了数据列表,然后直接使用。 在我们平时的工作中,不太有那么多的机
Thumbnail
繼「【Google Colab Python系列】 資料處理神器 Pandas 起手式」之後,相信對於各位來說已經是小兒科了吧,沒關係! 我們今天來增加一點點小挑戰,你知道嗎? Pandas對於大部分人的第一印象就是「不就表格化而已,有什麼了不起?」、「幫我們整理格式轉換的介接器」...,但其實它不
Thumbnail
繼「【Google Colab Python系列】 資料處理神器 Pandas 起手式」之後,相信對於各位來說已經是小兒科了吧,沒關係! 我們今天來增加一點點小挑戰,你知道嗎? Pandas對於大部分人的第一印象就是「不就表格化而已,有什麼了不起?」、「幫我們整理格式轉換的介接器」...,但其實它不
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News