当前位置:首页>python>【Python知识点11】Pandas库零基础入门详解指南

【Python知识点11】Pandas库零基础入门详解指南

  • 2026-09-05 09:24:20
【Python知识点11】Pandas库零基础入门详解指南

Python数据分析的“瑞士军刀”:Pandas库零基础入门详解

简介 (Introduction)

欢迎来到Python数据分析的世界!如果你曾经使用过Excel来处理表格数据,那么你可以把 Pandas 想象成“拥有超级计算能力的、可以通过代码自动化的Excel”。

Pandas 是 Python 编程语言中最强大、最流行的数据处理和分析库。它的名字来源于“Panel Data”(面板数据),专门为处理表格型数据而设计。无论你是要进行数据清洗、数据探索,还是为机器学习准备数据,Pandas 都是你不可或缺的工具。

本篇指南专为零基础初学者设计,我们将系统地拆解 Pandas 的核心知识点,带你一步步掌握这把数据分析的“瑞士军刀”。

好书推荐

准备工作 (Prerequisites)

在开始写代码之前,我们需要确保你的电脑上已经安装了 Pandas 库。

1. 安装 Pandas

打开你的命令行(Windows 的 CMD/PowerShell,或 Mac/Linux 的 Terminal),输入以下命令:

pip install pandas

2. 导入 Pandas

在 Python 脚本或 Jupyter Notebook 中,我们通常会使用一个约定俗成的简写 pd 来导入这个库:

import pandas as pd

提示:保持使用 pd 作为别名,因为全世界的 Python 开发者都是这么做的,这会让你的代码更具可读性。


核心知识点详解 (Step-by-Step Guide)

1. Pandas 的两大数据结构

要学好 Pandas,首先必须认识它的两大核心“容器”:Series 和 DataFrame。

A. Series (一维数据)

Series 就像是 Excel 中的单独一列。它是一个带有标签(索引)的一维数组。

import pandas as pd

# 从列表创建一个 Series
data = [10, 20, 30, 40]
s = pd.Series(data)

print(s)
# 输出:
# 0    10
# 1    20
# 2    30
# 3    40
# dtype: int64

左边是索引(Index),右边是数据(Values)。

B. DataFrame (二维数据)

DataFrame 就像是一张完整的 Excel 表格,由多个 Series(列)组成。这是你以后最常接触的数据结构。

# 使用字典创建一个 DataFrame
data = {
'姓名': ['张三', '李四', '王五'],
'年龄': [25, 22, 28],
'城市': ['北京', '上海', '广州']
}

df = pd.DataFrame(data)

print(df)
# 输出:
#    姓名  年龄  城市
# 0  张三   25  北京
# 1  李四   22  上海
# 2  王五   28  广州

2. 数据的读取与保存

在实际工作中,我们很少手动敲入数据,通常是从文件中读取。

读取 CSV 文件

# 将同目录下的 data.csv 读取为 DataFrame
df = pd.read_csv('data.csv')

保存为 CSV 文件

# 将 DataFrame 保存为新的 CSV 文件
# index=False 表示不保存最左侧的数字索引
df.to_csv('output.csv', index=False)

3. 数据查看与初步探索

拿到一个几万行的数据集时,我们需要先“看一眼”数据的模样。

# 1. 查看前 5 行数据(常用于快速浏览)
print(df.head())

# 2. 查看数据的基本信息(包含列名、非空值数量、数据类型)
print(df.info())

# 3. 查看数值列的统计信息(平均值、最大最小值、标准差等)
print(df.describe())

4. 数据选择与过滤

如何从庞大的表格中精准提取你需要的数据?

A. 选择列

# 提取单列(返回一个 Series)
ages = df['年龄']

# 提取多列(注意里面是一个列表,所以有两层方括号)
subset = df[['姓名', '城市']]

B. 选择行 (loc 与 iloc)

  • • loc: 基于标签(名字)进行索引。
  • • iloc: 基于整数位置(第几行/第几列)进行索引。
# 提取第 0 行的数据
row_0 = df.iloc[0] 

# 提取前两行的前两列
subset_data = df.iloc[0:2, 0:2]

C. 条件过滤 (非常实用!)

找出所有年龄大于 23 岁的人:

# df['年龄'] > 23 会生成一列 True/False,然后将它套入 df[] 中
older_than_23 = df[df['年龄'] > 23]
print(older_than_23)

5. 数据清洗基础

现实中的数据往往是脏的,通常会包含缺失值(NaN)。

# 1. 删除包含缺失值的行
df_clean = df.dropna()

# 2. 用特定值填补缺失值(例如用 0 填补)
df_filled = df.fillna(0)

新手常见陷阱与避坑指南 (Common Pitfalls)

陷阱 1:忘记重新赋值或不使用 inplace=True

很多初学者在执行 df.dropna() 后,发现原来的 df 并没有改变。
原因: Pandas 的大多数操作默认都会返回一个新的对象,而不会修改原数据。
解决方案:

# 方法一:重新赋值给原变量(推荐,更清晰)
df = df.dropna()

# 方法二:使用 inplace 参数
df.dropna(inplace=True)

陷阱 2:混淆 loc 和 iloc

  • • 误区: 使用 df.iloc['列名'] 会报错。
  • • 正解: 记住 i 代表 integer(整数)。只要看到 iloc,里面只能填数字(0, 1, 2...);而 loc 里面填的是实际的行标签和列名。

陷阱 3:SettingWithCopyWarning 警告

当你尝试修改从 DataFrame 中切片出来的数据时,经常会看到这个红色的警告。
原因: Pandas 不确定你是在修改原始数据的“视图”还是“副本”。
解决方案: 在提取数据准备进行修改时,养成使用 .copy() 的好习惯。

# 正确做法
df_subset = df[df['年龄'] > 20].copy()
df_subset['新列'] = '测试'# 这样就不会报错了

学习资源与总结 (Resources & Conclusion)

总结

今天我们系统地学习了 Pandas 的基础:

  1. 1. 认识了 Series 和 DataFrame。
  2. 2. 学会了如何导入和导出数据。
  3. 3. 掌握了如何查看、选择和过滤数据。
  4. 4. 了解了处理缺失值的数据清洗基础。
  5. 5. 避开了新手最容易踩的几个代码陷阱。

这只是 Pandas 强大功能的冰山一角。随着学习的深入,你还会接触到数据分组(groupby)、表格合并(merge)以及时间序列分析等高级功能。

推荐学习资源

  • • 官方文档:Pandas Official Documentation (最权威的字典,遇到不懂的函数直接查)。
  • • Kaggle:Kaggle Pandas 免费课程 (提供在线交互式练习,非常适合初学者)。
  • • 动手实践: 找一个你感兴趣的 Excel 表格(如个人账单、游戏英雄数据),尝试用 Pandas 把它读取出来并进行简单的统计。

编程的核心在于实践。 打开你的代码编辑器,把上面的代码片段敲一遍,你已经迈出了成为数据分析师的坚实第一步!加油!

最新文章

随机文章