Python 三大基本库——Pandas 详解(2026最新版 · 0基础到实战)
在你的 Python 快速学习路线图 中,NumPy + Pandas + Matplotlib 被公认为 Python 数据分析的“三大基本库”。其中 Pandas 是最核心、最强大的一个,被称为“Python界的Excel”或“数据处理瑞士军刀”。
Pandas 基于 NumPy 构建,专为结构化数据(表格型数据)设计,能轻松完成读取、清洗、转换、分析、聚合、可视化等全流程操作。即使在 2026 年,Pandas 依然是中小规模数据分析(百万行以内)的绝对标准。虽然 Polars 等新库在速度上更快(尤其是大数据),但 Pandas 生态最完善、文档最友好、与 AI/ML 库兼容最好,强烈建议先彻底掌握 Pandas,再考虑 Polars。
1. Pandas 是什么?为什么必须学?
- 全称:Python Data Analysis Library(面板数据)
- 核心优势:
- 像 Excel 一样操作表格,但支持百万级数据、自动化、编程扩展
- 自动处理缺失值、不同类型数据、对齐索引
- 与 NumPy(数值计算)、Matplotlib/Seaborn(可视化)、Scikit-learn(机器学习)、Ollama/LangChain(AI)无缝集成
- 2026 现状:Pandas 3.0 已发布,移除大量弃用功能,性能优化更好,但核心 API 变化不大。
安装(在你的 conda 环境中推荐):
conda install pandas -c conda-forge
# 或 pip
pip install pandas
导入(约定俗成别名):
import pandas as pd
import numpy as np # 经常一起用
2. Pandas 两大核心数据结构(必须吃透!)
(1)Series(一维,带标签的数组)
像加强版的列表或字典,有索引(index)。
# 创建
s1 = pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd'])
s2 = pd.Series({'苹果': 5.5, '香蕉': 3.2, '橙子': 4.8})
print(s1)
print(s1['b']) # 20 通过标签取值
print(s1[1]) # 20 通过位置取值(仍支持)
(2)DataFrame(二维表格,最常用!)
像 Excel 表格或数据库表,由多个 Series 组成(列可不同类型)。
data = {
'姓名': ['小明', '小红', '小刚'],
'年龄': [18, 17, 19],
'成绩': [95, 88, 92]
}
df = pd.DataFrame(data, index=['一班', '二班', '三班'])
print(df)
查看基本信息(必会):
df.head() # 前5行
df.tail(3) # 后3行
df.info() # 数据类型、缺失值、非空数
df.describe() # 数值列统计(均值、标准差、最大最小等)
df.shape # (行数, 列数)
df.columns # 列名
df.index # 索引
3. 核心操作速通(最常用 80% 场景)
读取与保存数据(入门第一步)
# 读取
df = pd.read_csv('data.csv')
df = pd.read_excel('data.xlsx', sheet_name='Sheet1')
df = pd.read_json('data.json')
# 保存
df.to_csv('output.csv', index=False)
df.to_excel('output.xlsx')
选择数据(索引、切片、过滤)
# 列选择
df['姓名'] # 单列 → Series
df[['姓名', '成绩']] # 多列 → DataFrame
# 行选择(推荐 loc/iloc)
df.loc['一班'] # 按标签
df.iloc[0] # 按位置
df.loc[df['年龄'] > 18] # 条件过滤
df[df['成绩'] >= 90]
# 同时选行列
df.loc[df['年龄'] > 18, ['姓名', '成绩']]
数据清洗(实际项目最花时间)
df.isnull().sum() # 查看缺失值
df.dropna() # 删除缺失行
df.fillna(0) # 填充 0
df.fillna(df['成绩'].mean()) # 填充均值
df.drop_duplicates() # 去重
df.rename(columns={'成绩': 'score'}) # 重命名列
排序、添加/修改列
df.sort_values(by='成绩', ascending=False) # 降序
df['总分'] = df['成绩'] * 1.1 # 新增列
df['年龄'] = df['年龄'] + 1 # 修改列
分组聚合(GroupBy,神器!)
df.groupby('班级')['成绩'].mean() # 按班级平均成绩
df.groupby(['班级', '性别']).agg({'成绩': ['mean', 'max'], '年龄': 'count'})
合并数据(类似 SQL Join)
pd.merge(df1, df2, on='id', how='left') # left/right/inner/outer
pd.concat([df1, df2], axis=0) # 上下合并
4. 简单可视化(直接调用 plot)
df['成绩'].plot(kind='bar') # 柱状图
df.plot.scatter(x='年龄', y='成绩')
import matplotlib.pyplot as plt
plt.show()
5. 实战小练习(立即动手,在 Jupyter Notebook 完成)
- 读取一个 CSV 文件(可用 Kaggle 下载 Titanic 数据),查看前 10 行、形状、缺失值。
- 筛选年龄 > 18 且成绩 >= 90 的学生,计算平均成绩。
- 新增一列“及格”(成绩>=60 为 True),按及格人数分组统计。
- 把 DataFrame 保存为 Excel,并用 describe() 生成统计报告。
推荐练习数据集:Titanic、Iris、Pokemon、自己导出的 Excel。
6. 学习资源推荐(2026最新,免费为主)
- 官方:pandas.pydata.org/docs/getting_started (10分钟上手 + 教程系列)
- 视频:YouTube “Pandas Explained: DataFrames & Series (Python 2026 Tutorial)”、Keith Galli 完整教程、B站“2026 Python数据分析教程(numpy+pandas+matplotlib)”
- 互动:DataCamp Pandas 教程、W3Schools Pandas、GeeksforGeeks Pandas Tutorial
- 中文:CSDN/B站完整 Pandas 教程、阿里云开发者社区 Pandas 入门指南
- 进阶:Pandas 官方 Cookbook、《Python for Data Analysis》(Wes McKinney 著,Pandas 作者)
7. 学习建议 & 2026 注意事项
- 顺序:先掌握 Series + DataFrame 创建/读取 → 选择与过滤 → 清洗与转换 → GroupBy 聚合 → 合并与可视化。
- 结合之前学习:用列表/字典创建 DataFrame,用 Ollama 本地模型生成练习题或解释报错。
- 避坑:索引对齐(自动对齐是优势也是坑)、视图 vs 拷贝(SettingWithCopyWarning)、大文件用
chunksize分块读取。 - 下一步:学完 Pandas 后直接进入 Matplotlib/Seaborn 可视化,或用 Pandas + Ollama 做简单数据问答工具(RAG 入门)。
- Polars 选择:数据超百万行或追求极致速度时再学,语法类似但更快。
Pandas 是你从“会写 Python”到“能做数据分析/AI 数据预处理”的关键跳板。现在就行动:打开终端/conda 环境,pip install pandas jupyter,新建 Notebook,复制上面代码跑一遍!
想看:
- 完整可运行代码文件(Titanic 实战案例)
- 某个操作深入详解(如 GroupBy 多级聚合、时间序列处理)
- Pandas + Ollama 结合项目(用 AI 分析你的 CSV)
- NumPy 或 Matplotlib 下一课
- 练习题 + 答案
随时告诉我,我立刻补充!继续你的 Python + AI 速通之路,Pandas 掌握后数据世界就真正打开了!🚀