RSS
菜单
全部文章快讯开发科技深度热点

第 1 章 pandas 入门与环境搭建

内容摘要

本篇文章是 pandas 从入门到精通系列的第 1 篇,带你认识 pandas 是什么、为什么要学它、如何安装、如何导入,并快速上手它的两大核心数据结构。

本篇文章是 pandas 从入门到精通系列的第 1 篇,带你认识 pandas 是什么、为什么要学它、如何安装、如何导入,并快速上手它的两大核心数据结构。

目录

1. pandas 是什么

2. 为什么要学 pandas

3. pandas 的安装

4. 导入 pandas 的约定

5. 两大核心数据结构概览

6. 你的第一个 pandas 程序

7. 查看版本与帮助信息

8. pandas 与 NumPy 的关系

9. 常见坑与注意事项

10. 本章小结与练习


1. pandas 是什么

pandas 是 Python 生态中最流行的数据处理与分析库,名字来源于 "Panel Data"(面板数据) 和 "Python Data Analysis" 的组合。它由 Wes McKinney 于 2008 年创立,现在由开源社区维护,几乎成了 Python 数据分析的事实标准。

pandas 的核心价值在于:用类似"Excel 表格 + SQL 查询"的体验,在内存中高效地处理结构化数据(表格型数据)。

| 特性 | 说明 |

|------|------|

| 数据类型 | 主要为表格型二维数据(DataFrame)和一维数据(Series) |

| 擅长领域 | 数据清洗、数据变换、聚合统计、时间序列分析、数据可视化配合 |

| 底层依赖 | 构建在 NumPy 之上,运算速度快 |

| 生态地位 | 与 NumPy、Matplotlib、Scikit-learn 并称 Python 数据科学四件套 |

| 学习曲线 | 入门容易,精通需要理解索引、合并、分组等核心概念 |


2. 为什么要学 pandas

对比几种常见的数据处理方式,你会更清楚 pandas 的位置:

| 工具 | 优点 | 缺点 |

|------|------|------|

| Excel | 可视化好、门槛低 | 数据量大(几十万行以上)会卡顿、难以自动化、难以复现 |

| SQL | 适合海量数据、聚合能力强 | 只擅长"查询",复杂的清洗、转换、建模前处理很吃力 |

| 纯 Python(列表/字典) | 灵活 | 代码冗长、性能差、没有现成的统计函数 |

| pandas | 集众长于一身:表格操作 + 统计分析 + 自动化脚本 | 大数据量(超过内存)时需要配合其他工具(如 Dask、Spark) |

典型场景举例:

  • 读取一份几十万行的 CSV 销售记录,筛选出"华东区 2025 年销售额 Top10 商品";
  • 合并两张表(订单表 + 商品表),按类别统计利润;
  • 处理缺失值、去重、统一日期格式;
  • 对时间序列做重采样(按天/按周/按月汇总);
  • 把清洗好的数据一键导出成 Excel/CSV 供报表使用。

3. pandas 的安装

3.1 使用 pip 安装(最常见)

# 安装最新版
pip install pandas

# 指定版本安装(生产环境推荐锁定版本)
pip install pandas==2.2.3

# 国内加速镜像(清华源)
pip install pandas -i

# 升级
pip install --upgrade pandas

3.2 使用 conda 安装(推荐 Anaconda 用户)

conda install pandas
conda install -c conda-forge pandas

3.3 验证安装是否成功

打开 Python 解释器或任意 IDE,执行:

import pandas as pd
print(pd.__version__)

如果能正常输出版本号(例如 2.2.3),说明安装成功。

3.4 建议的配套环境

# 数据科学全家桶(一次性装齐)
pip install pandas numpy matplotlib seaborn jupyter

# 或者用 conda 一步到位
conda install pandas numpy matplotlib seaborn jupyter
提示:pandas 依赖 NumPy,pip install pandas 会自动帮你装好兼容版本的 NumPy,一般无需手动处理。

4. 导入 pandas 的约定

社区通行的导入方式(务必遵守,方便别人阅读你的代码):

import pandas as pd          # 主力约定
import numpy as np           # 常配合使用

# 可选:让 matplotlib 图表直接在 Jupyter 中显示
import matplotlib.pyplot as plt
几乎全世界所有 pandas 教程和代码都会使用 pd 作为别名,请不要再使用 import pandas 这种写法。

5. 两大核心数据结构概览

pandas 有两大核心数据结构,它们是后面所有章节的基础:

5.1 Series —— 一维带标签数组

类似"一列 Excel 数据",每个元素带有一个索引(index)。

索引:   2020    2021    2022    2023
值:     100     150     130     200

5.2 DataFrame —— 二维表格

类似"一张 Excel 工作表",由行索引 + 列名 + 数据组成。

        姓名    年龄    城市
0       张三     25     北京
1       李四     30     上海
2       王五     28     广州

| 结构 | 维度 | 类比 | 重要属性 |

|------|------|------|----------|

| Series | 1 维 | 一列数据 | index、values、name |

| DataFrame | 2 维 | 一张 Excel 表 | index、columns、values、shape |

DataFrame 本质上可以理解为"由多个 Series 按列拼成的表格"。

6. 你的第一个 pandas 程序

用 5 行代码体验 pandas 的威力:从字典创建 DataFrame,做一次筛选和统计。

import pandas as pd

# 1. 用字典创建 DataFrame
data = {
    "姓名": ["张三", "李四", "王五", "赵六", "孙七"],
    "部门": ["技术", "技术", "销售", "销售", "市场"],
    "薪资": [12000, 15000, 9000, 11000, 8000],
}
df = pd.DataFrame(data)
print(df)

# 2. 查看基本信息
print("\n=== 基本信息 ===")
print(df.info())

# 3. 按部门分组求平均薪资
print("\n=== 各部门平均薪资 ===")
print(df.groupby("部门")["薪资"].mean())

# 4. 筛选薪资大于 10000 的员工
print("\n=== 高薪员工 ===")
print(df[df["薪资"] > 10000])

运行结果:

   姓名  部门     薪资
0  张三  技术  12000
1  李四  技术  15000
2  王五  销售   9000
3  赵六  销售  11000
4  孙七  市场   8000

=== 基本信息 ===
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 5 entries, 0 to 4
Data columns (total 3 columns):
 #   Column  Non-Null Count  Dtype
---  ------  --------------  -----
 0   姓名     5 non-null      object
 1   部门     5 non-null      object
 2   薪资     5 non-null      int64
dtypes: int64(1), object(2)
memory usage: 248.0+ bytes
None

=== 各部门平均薪资 ===
部门
市场     8000.0
技术    13500.0
销售    10000.0
Name: 薪资, dtype: float64

=== 高薪员工 ===
   姓名  部门     薪资
0  张三  技术  12000
1  李四  技术  15000
2  赵六  销售  11000

你看,仅仅几行代码就完成了 建表 → 查看结构 → 分组统计 → 条件筛选 四个常用操作。这就是 pandas 的魅力。


7. 查看版本与帮助信息

import pandas as pd

# 版本号
print(pd.__version__)

# 查看某个函数/对象的帮助文档
help(pd.DataFrame)
help(pd.read_csv)

# 查看已安装的依赖版本
pd.show_versions()

pd.show_versions() 会输出当前 pandas 及关键依赖的版本,排查环境问题时非常有用。


8. pandas 与 NumPy 的关系

理解两者关系,对你后续学习事半功倍:

  • NumPy 提供多维数组(ndarray)和底层数学运算,是 pandas 的"发动机";
  • pandas 在 NumPy 之上增加了标签索引、缺失值处理、分组聚合、时间序列、文件读写等高层能力;
  • pandas 的很多操作最终会退化为 NumPy 的向量化运算,所以两者混用非常自然。
import numpy as np
import pandas as pd

# pandas 的数据底层就是 numpy 数组
s = pd.Series([1, 2, 3])
print(type(s.values))          # <class 'numpy.ndarray'>

# 可以直接对 pandas 对象使用 numpy 函数
df = pd.DataFrame({"a": [1, 2, 3], "b": [4, 5, 6]})
print(np.sqrt(df))
<class 'numpy.ndarray'>
          a         b
0  1.000000  2.000000
1  1.414214  2.236068
2  1.732051  2.449490

9. 常见坑与注意事项

| 坑 | 说明 | 建议 |

|----|------|------|

| 用 import pandas 而非 pd | 不符合社区约定,代码难读 | 始终 import pandas as pd |

| 版本过旧 | 旧版本缺少新 API,且与新版 NumPy 可能有兼容问题 | 定期 pip install --upgrade pandas |

| 中文乱码 | 读写 CSV/Excel 中文时常见 | 读取时指定 encoding="utf-8",Windows 下有时需要 "gbk" |

| 把 pandas 当 Excel 用 | 只用鼠标式的操作,无法自动化 | 学会用代码做批量、可复现的处理 |

| 不区分 Series 与 DataFrame | 两类对象 API 有差异,混用会报错 | 先牢记 type(obj) 判断对象类型 |


10. 本章小结与练习

小结

  • pandas 是 Python 数据处理的核心库,提供 Series(一维)和 DataFrame(二维)两种数据结构;
  • 安装用 pip install pandas,导入用 import pandas as pd;
  • pandas 构建于 NumPy 之上,融合了 Excel 的表格体验与 SQL 的查询能力;
  • 学习路线建议:数据结构 → 读写 → 索引选择 → 清洗 → 变换 → 合并 → 分组 → 时间序列 → 可视化 → 性能优化。

练习题

1. 安装 pandas,并打印你的 pandas 和 numpy 版本。

2. 用字典创建一个包含"姓名、成绩、班级"三列的 DataFrame,打印它。

3. 对上面创建的 DataFrame 按班级分组,求出每班平均成绩。

4. 筛选出成绩大于 90 分的记录。


下一篇预告:第 2 章 Series 详解 —— 深入学习一维数据结构 Series 的创建、索引、运算与常用方法。
— 全文完 —回到顶部 ↑
下载推广海报

文章推广海报

《第 1 章 pandas 入门与环境搭建》完整推广海报
DISCUSSION

文章回复

0 条公开回复
未登录回复需要审核后公开
还没有回复,欢迎参与讨论。