Python之三大基本库——Pandas

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 完成)

  1. 读取一个 CSV 文件(可用 Kaggle 下载 Titanic 数据),查看前 10 行、形状、缺失值。
  2. 筛选年龄 > 18 且成绩 >= 90 的学生,计算平均成绩。
  3. 新增一列“及格”(成绩>=60 为 True),按及格人数分组统计。
  4. 把 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 掌握后数据世界就真正打开了!🚀

文章已创建 5160

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部