更新於 2024/12/20閱讀時間約 8 分鐘

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

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


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

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.