文章概要
本文詳細介紹 Pandas 庫的基礎知識,包括:
- Pandas 的基本概念和特點
- 安裝和配置方法
- 核心數據結構(Series 和 DataFrame)
- 各種數據類型的處理方法
- 實際應用示例
什么是 Pandas
Pandas 是 Python 中最流行的數據分析庫之一,它提供了高性能、易用的數據結構和數據分析工具。Pandas 的名字來源于 “Panel Data”(面板數據),這是一個計量經濟學術語,用于描述多維結構化數據集。
Pandas 的主要特點
-
強大的數據結構
- Series:一維帶標簽數組
- DataFrame:二維表格型數據結構
- Panel:三維數據結構(在新版本中已棄用)
-
靈活的數據處理能力
- 數據清洗和準備
- 數據轉換和重塑
- 數據合并和連接
- 數據分組和聚合
-
豐富的數據分析功能
- 統計分析
- 時間序列分析
- 數據可視化集成
-
高性能
- 基于 NumPy 構建
- 優化的 C 語言實現
- 支持大數據集處理
Pandas 與其他數據分析工具的比較
特性 | Pandas | NumPy | Excel |
---|---|---|---|
數據結構 | Series, DataFrame | ndarray | 表格 |
處理速度 | 快 | 非常快 | 較慢 |
內存使用 | 中等 | 低 | 高 |
可視化 | 基礎 | 無 | 豐富 |
適用場景 | 數據分析、清洗 | 科學計算 | 簡單分析 |
安裝與配置
安裝 Pandas
使用 pip 安裝:
pip install pandas
使用 conda 安裝:
conda install pandas
導入 Pandas
在 Python 中導入 Pandas:
import pandas as pd
版本檢查
檢查 Pandas 版本:
import pandas as pd
print(pd.__version__)
數據結構
Series 數據結構
Series 是 Pandas 中最基本的數據結構,它是一個一維的帶標簽數組。
創建 Series
# 從列表創建
s1 = pd.Series([1, 3, 5, 7, 9])# 從字典創建
s2 = pd.Series({'a': 1, 'b': 2, 'c': 3})# 指定索引
s3 = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
Series 的基本操作
# 訪問數據
print(s1[0]) # 通過位置訪問
print(s2['a']) # 通過標簽訪問# 數學運算
print(s1.mean()) # 計算平均值
print(s1.sum()) # 計算總和# 布爾索引
print(s1[s1 > 5]) # 選擇大于5的值
Series 的索引和切片
# 位置索引
print(s1[0:3]) # 選擇前三個元素# 標簽索引
print(s2['a':'c']) # 選擇標簽從a到c的元素# 條件索引
print(s1[s1 > 5]) # 選擇大于5的元素
DataFrame 數據結構
DataFrame 是 Pandas 中最常用的數據結構,它是一個二維的表格型數據結構。
創建 DataFrame
# 從字典創建
df1 = pd.DataFrame({'A': [1, 2, 3],'B': ['a', 'b', 'c']
})# 從列表創建
df2 = pd.DataFrame([[1, 'a'],[2, 'b'],[3, 'c']
], columns=['A', 'B'])# 從 NumPy 數組創建
import numpy as np
df3 = pd.DataFrame(np.random.randn(3, 3))
DataFrame 的基本操作
# 查看數據
print(df1.head()) # 查看前幾行
print(df1.tail()) # 查看后幾行
print(df1.info()) # 查看數據信息# 選擇列
print(df1['A']) # 選擇單列
print(df1[['A', 'B']]) # 選擇多列# 選擇行
print(df1.iloc[0]) # 通過位置選擇行
print(df1.loc[0]) # 通過標簽選擇行
DataFrame 的索引和切片
# 選擇特定行和列
print(df1.iloc[0:2, 0:1]) # 選擇前兩行第一列# 條件選擇
print(df1[df1['A'] > 1]) # 選擇A列大于1的行# 多條件選擇
print(df1[(df1['A'] > 1) & (df1['B'] == 'b')])
數據類型
數值類型
Pandas 支持多種數值類型:
- int64:64位整數
- float64:64位浮點數
- bool:布爾值
# 查看數據類型
print(df1.dtypes)# 轉換數據類型
df1['A'] = df1['A'].astype('float64')
字符串類型
Pandas 中的字符串操作:
# 字符串方法
df1['B'] = df1['B'].str.upper() # 轉換為大寫
df1['B'] = df1['B'].str.lower() # 轉換為小寫
時間類型
Pandas 提供了強大的時間序列處理功能:
# 創建時間序列
dates = pd.date_range('20230101', periods=3)
df1['date'] = dates# 時間操作
df1['date'] = df1['date'] + pd.Timedelta(days=1)
分類數據
使用分類數據可以節省內存并提高性能:
# 創建分類數據
df1['B'] = df1['B'].astype('category')
缺失值處理
Pandas 提供了多種處理缺失值的方法:
# 檢查缺失值
print(df1.isnull())# 刪除缺失值
df1.dropna()# 填充缺失值
df1.fillna(0) # 用0填充
df1.fillna(method='ffill') # 用前一個值填充
實際應用示例
示例1:學生成績分析
# 創建學生成績數據
scores = pd.DataFrame({'姓名': ['張三', '李四', '王五', '趙六'],'語文': [85, 92, 78, 88],'數學': [92, 88, 95, 82],'英語': [88, 85, 90, 87]
})# 計算平均分
scores['平均分'] = scores[['語文', '數學', '英語']].mean(axis=1)# 按平均分排序
scores_sorted = scores.sort_values('平均分', ascending=False)# 顯示結果
print(scores_sorted)
示例2:銷售數據分析
# 創建銷售數據
sales = pd.DataFrame({'日期': pd.date_range('20230101', periods=5),'產品': ['A', 'B', 'A', 'C', 'B'],'銷量': [100, 150, 120, 80, 200],'單價': [10, 15, 10, 20, 15]
})# 計算銷售額
sales['銷售額'] = sales['銷量'] * sales['單價']# 按產品分組統計
product_stats = sales.groupby('產品').agg({'銷量': 'sum','銷售額': 'sum'
})# 顯示結果
print(product_stats)
總結
Pandas 基礎部分涵蓋了:
- Pandas 的基本概念和特點
- 安裝和配置方法
- 核心數據結構(Series 和 DataFrame)
- 各種數據類型的處理方法
- 實際應用示例
這些基礎知識是使用 Pandas 進行數據分析的基礎,掌握這些內容后,您就可以開始進行更復雜的數據分析工作了。在實際應用中,建議多練習這些基礎操作,熟悉各種數據結構的特性和使用方法,為后續的進階學習打下堅實的基礎。