Pandas
函式庫介紹系列 -2
上週我們介紹了 Matplotlib
其中用到的基礎函式庫包含 NumPy
而今天介紹的Pandas 也是NumPy的另一個應用
先複習一下
Pandas ?



Pandas ?
Pandas 是 Python 最重要的資料處理與分析工具,名稱來自 "Panel Data"(跨時間的結構化資料),由 Wes McKinney 開發。 它提供兩個核心資料結構: Series:一維的資料列(類似 list) DataFrame:二維表格資料結構(像 Excel + SQL 的合體)
Data cleaning / cleansing
資料清理
Data Cleaning 指的是從原始資料中識別並修正、移除不完整、不準確或不一致的資料的過程。目的在於提高資料的品質及完整度,從而確保後續資料分析及模型建立可以基於高品質的資料進行。
Data cleaning / cleansing
資料清理
優點包含:
減少錯誤
縮短開發時間
提升決策效果
pd.Series
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) # 每個元素加 import pandas as pd
a = [1, 7, 2]
myvar = pd.Series(a, index = ["x", "y", "z"])
print(myvar)
創建 Labels
# 用 label 找資料
print(myvar["y"])還記得 Python 的 Dictionary 嗎(字典)
Key / Value for pd.Series
import pandas as pd
calories = {"day1": 420, "day2": 380, "day3": 390}
myvar = pd.Series(calories, index = ["day1", "day2"])
print(myvar)pd.DataFrame
DataFrame 是 pandas 的另一種資料結構
是二維表格
類似 Excel 的概念。
# 建立方法一
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)print(df.loc[0])print(df.loc[[0,1]])import pandas as pd
data = {
"calories": [420, 380, 390],
"duration": [50, 40, 45]
}
df = pd.DataFrame(data, index = ["day1", "day2", "day3"])
print(df) import pandas as pd
df = pd.read_csv('data.csv')
print(df) Load .csv
application
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
# 1. Create a dummy dataset
data = {
'Month': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
'Revenue': [15000, 18000, 12000, 22000, 25000, 23000, 28000, 31000, 29000, 35000, 42000, 48000],
'Expenses': [12000, 14000, 13000, 15000, 16000, 18000, 19000, 20000, 18500, 22000, 25000, 27000]
}
df = pd.DataFrame(data)
# 2. Calculate Profit (Pandas logic)
df['Profit'] = df['Revenue'] - df['Expenses']
# 3. Create the Visualization
plt.figure(figsize=(10, 6))
# Use pandas' built-in wrapper for matplotlib
plt.plot(df['Month'], df['Revenue'], marker='o', label='Revenue', color='#2E86C1', linewidth=2)
plt.plot(df['Month'], df['Profit'], marker='s', label='Profit', color='#28B463', linewidth=2)
# 4. Customizing with Matplotlib
plt.title('Annual Financial Performance', fontsize=16, fontweight='bold')
plt.xlabel('Month', fontsize=12)
plt.ylabel('Amount (USD $)', fontsize=12)
plt.grid(True, linestyle='--', alpha=0.7)
plt.legend()
# Show the plot
plt.tight_layout()
plt.show()
by Gemini
Pandas 可以跟很多其他函式庫混著用
Pandas
By Suzy Huang
Pandas
- 145