Python pandas 库基础知识 —— 超详细教学(2026 最新版)
(从零基础到能独立完成 90% 数据分析任务,专为面试 + 实战设计)
pandas 是 Python 数据分析的绝对核心库,被称为“Python 的 Excel”。
本篇一次性讲透 pandas 最重要、最常用的所有基础知识,全部配可直接运行代码 + 面试高频点。
1. 什么是 pandas?一句话记住
pandas = 高速 + 强大的二维表格工具(DataFrame) + 一维序列工具(Series)
- Series:带标签的一维数组(像加强版的 list + dict)
- DataFrame:带行索引和列名的二维表格(像 Excel 表格)
2. 安装与导入(2026 推荐写法)
# 终端安装(推荐使用 pyarrow 加速后端)
pip install pandas pyarrow openpyxl
# 导入(行业标准写法)
import pandas as pd
import numpy as np # pandas 经常和 numpy 一起使用
3. 两大核心对象详解
(1)Series —— 一维带标签数据
# 创建 Series 的 5 种常用方式
s1 = pd.Series([10, 20, 30, 40]) # 自动生成索引 0,1,2,3
s2 = pd.Series([10, 20, 30], index=['a', 'b', 'c']) # 自定义索引
s3 = pd.Series({'a': 100, 'b': 200, 'c': 300}) # 从字典创建
s4 = pd.Series(5, index=range(5)) # 标量广播
s5 = pd.Series(np.random.randn(5)) # 从 numpy 创建
print(s2)
# a 10
# b 20
# c 30
# dtype: int64
Series 核心属性和方法(背下来):
s = pd.Series([1, 3, 5, 7, 9], index=list('abcde'))
s.index # Index(['a', 'b', 'c', 'd', 'e'], dtype='object')
s.values # array([1, 3, 5, 7, 9])
s.dtype # int64
s.name = '成绩'
s.shape # (5,)
s.size # 5
s.hasnans # False
(2)DataFrame —— 二维表格(最重要!)
# 最常用创建方式(推荐)
data = {
'姓名': ['张三', '李四', '王五', '赵六'],
'年龄': [18, 20, 19, 21],
'成绩': [95, 88, 76, 92],
'城市': ['北京', '上海', '广州', '深圳']
}
df = pd.DataFrame(data)
# 也可以从列表、numpy、二维数组、csv、excel 等创建
df = pd.read_csv('data.csv')
df = pd.read_excel('data.xlsx', sheet_name='Sheet1')
DataFrame 核心属性(面试必问):
df.shape # (行数, 列数) → (4, 4)
df.columns # Index(['姓名', '年龄', '成绩', '城市'], dtype='object')
df.index # RangeIndex(start=0, stop=4, step=1)
df.dtypes # 查看每列类型
df.values # 转为 numpy 数组(老版本用法,推荐 df.to_numpy())
df.info() # 最常用!一键查看缺失值、类型、内存占用
df.describe() # 数值列统计信息(均值、标准差、最大最小等)
4. 基础操作(每天都要用的 20 个操作)
① 查看数据
df.head(3) # 前3行
df.tail(2) # 后2行
df.sample(5) # 随机抽样
df.info()
df.describe(include='all') # 包含字符串列统计
② 选取数据(最容易错的地方)
# 推荐写法(2026 年标准)
df['姓名'] # 选取单列 → Series
df[['姓名', '成绩']] # 选取多列 → DataFrame
df.loc[0:2] # 按标签选取行(包含结束)
df.iloc[0:3] # 按位置选取行(不包含结束)
df.loc[0:2, ['姓名', '成绩']] # 行列同时选取(推荐!)
# 条件筛选(超级常用)
df[df['成绩'] > 90]
df[(df['年龄'] > 18) & (df['城市'] == '北京')] # 注意要用 & | ~ 并且加括号
③ 修改数据
df['总分'] = df['成绩'] * 1.2 # 新增列
df.loc[0, '年龄'] = 19 # 修改单个值
df.drop(columns=['城市'], inplace=True) # 删除列
df.rename(columns={'姓名':'name'}, inplace=True)
④ 排序与去重
df.sort_values(by='成绩', ascending=False, inplace=True)
df.drop_duplicates(subset=['姓名'], keep='first')
⑤ 处理缺失值(面试高频)
df.isnull().sum() # 查看每列缺失个数
df.dropna() # 删除有缺失的行
df.fillna(0) # 填充为 0
df.fillna(df['成绩'].mean())# 填充均值
df.fillna(method='ffill') # 向前填充
5. 分组聚合(GroupBy)—— pandas 最强大功能
# 按城市统计平均成绩
df.groupby('城市')['成绩'].mean()
# 多列分组 + 多聚合
result = df.groupby('城市').agg({
'成绩': ['mean', 'max', 'count'],
'年龄': 'mean'
})
print(result)
6. 透视表(pivot_table)—— 类似 Excel 数据透视表
pd.pivot_table(df,
values='成绩',
index='城市',
columns='姓名',
aggfunc='mean',
margins=True) # 显示总计
7. 文件读写(2026 最新推荐写法)
# 读取
df = pd.read_csv('data.csv', encoding='utf-8', parse_dates=['日期'])
df = pd.read_excel('data.xlsx', engine='openpyxl', dtype={'id': 'int32'})
# 写入(多 sheet 神器)
with pd.ExcelWriter('output.xlsx', engine='openpyxl') as writer:
df1.to_excel(writer, sheet_name='销售', index=False)
df2.to_excel(writer, sheet_name='汇总', index=False)
8. 一句话总结(面试 30 秒回答版)
“pandas 是 Python 数据分析的核心库,主要提供 Series(一维带标签数组)和 DataFrame(二维表格)两大结构。核心操作包括创建、选取(loc/iloc)、过滤、缺失值处理、分组聚合(groupby)、透视表(pivot_table)和文件读写。通过向量化操作,pandas 可以高效处理百万级数据,是数据清洗、分析、报表生成的标配工具。”
本篇结束,你已经掌握了 pandas 80% 的日常使用能力!
接下来我准备了完整进阶系列,请直接回复以下任意关键词,我立刻发出下一讲:
- 下一讲 → pandas 高级用法(多表合并、时间序列、apply、自定义函数、性能优化)
- 练习题 → 给你 30 道 pandas 基础 + 面试真题(带答案)
- 项目实战 → 完整《销售数据分析报表》项目(从读取到生成美观 Excel)
- 对比 openpyxl → pandas 与 openpyxl 深度结合写法
随时回复,我继续更新!
你现在已经比大多数刚学 Python 的人强太多了,继续加油!🚀