Pandas学习指南
基础部分
Pandas简介
入门结合参考:https://www.cnblogs.com/yigehulu/p/18081033
Series:一维带标签的数组
创建Series
-
使用列表创建
![]()
-
使用字典创建
![]()
-
使用numpy创建
![]()
-
单个字符串也能创建
![]()
-
创建空Series
![]()
-
创建等值Series
![]()
基本操作
-
数据访问
-
通过位置索引
![]()
-
通过标签索引
![]()
-
-
数据修改
![]()
索引切片
-
loc:显式索引切片,基于标签
![]()
-
iloc:隐式索引切片,基于位置
![]()
-
布尔索引切片
![]()

DataFrame:二维表格型数据结构
创建DataFrame
-
使用列表创建
-
默认不设置行列标签
![]()
-
设置列标签
![]()
-
-
使用数组创建
![]()
-
使用字典创建报错
![]()
- DataFrame通常由字典构成,其中键是列名,值可以是列表、数组或Series
- 由字典创建时,默认key是columns,但是字典的value不可以是非标量值
- 在 Pandas 中,标量(Scalar) 指的是单个的、不可再分的值(如一个数字、字符串或布尔值),非标量有长度,Pandas会创建默认列
列操作
-
增
![]()
-
删
-
inplace=True不返回新的DataFrame,直接修改原DataFrame
![]()
-
默认False,返回修改后数组
![]()
-
-
改
默认inplace=False
![]()
-
查
-
选择单列,返回Series
![]()
-
选择多列
![]()
-
行操作
-
增
数组,字典,列表新增都没有问题
![]()
-
删
![]()
-
改
![]()
-
查
-
选择单行,返回Series
![]()
-
选择多行
![]()
-
索引筛选
-
条件筛选
![]()
-
标签索引
![]()
-
位置索引
![]()
索引主要函数归纳
loc
-
索引类型:通过行标签和列标签选择数据
-
切片行为:包含结束位置
-
支持操作:单值,多值,布尔索引,条件筛选
-
适用场景:已知行/列的精准定位
![]()
iloc
-
索引类型:通过行位置和列位置选择数据(从0开始)
-
切片行为:左闭又开(不包含结束位置)
-
支持操作:单值,多值,证书列表,布尔掩码(需转换为整数)
-
适用场景:按固定位置选择数据(无需关心标签)
![]()
at
-
索引类型:通过行标签和列标签选择单个数据
-
仅限单个元素,比
loc更快![]()
iat
-
索引类型:通过行位置和列位置选择单个数据
-
仅限单个元素,比
iloc更快![]()
常用属性函数归纳
values:查看值

index:查看索引

describe():统计摘要
详细参数:
- include:指定需要包含的数据类型;include='all':包含所有列(包括非数值列,如字符串、分类、布尔值等)
- exclude:指定需要排除的数据类型
include 和 exclude 不能同时使用,否则会报错
支持所有 Pandas 数据类型,例如:np.number(所有数值类型),'category'(分类数据),'datetime'(日期时间),'object'(字符串或混合类型)
数值型
显示如下:
- count:数据总数(非空值数量)
- mean:平均值
- std:标准差(反应数据离散程度)
- min:最小值
- 25%:第一四分位数
- 50%:中位数
- 75%:第三四分位数
- max:最大值
![]()
字符串型(或混合型)
- count:数据总数(非空值数量)
- unique:去重后数值数量
- top:出现频率最高的值(众数)
- freq:众数(top)出现的次数
![image]()
head():查看前n行数据

unique():唯一值数组

中级部分
数据清洗
处理缺失值
检测缺失值
- isna():检测缺失值
![]()
删除缺失值
- dropna():删除含有缺失值的行(axis=0)返回修改后的DataFrame
![]()
填充缺失值
-
固定值填充
![]()
-
前后填充
![]()
数据转换
-
pd.to_numeric():将参数转换为数值类型(例如整数或浮点数)
核心参数:-
arg:待转换的数据(一维结构),如 Series、列表、元组或数组
-
errors:错误处理策略,'raise'(抛错) 'coerce'(无效值转换成NaN)or 'ignore'(忽略)
-
downcast:数值类型降级:'integer'(最小整数类型,有符号和无符号) or 'signed(最小的有符号整数类型,如:正数,负数和0) or 'unsigned'(最小的无符号整数类型,如:uint8, uint16, uint32, uint64) or 'float'(最小浮点类型)
![]()
-
-
where():用于根据条件替换值
核心参数:-
cond:布尔条件(DataFrame/Series/可调用对象),True的位置保留原值
-
other:替换值(标量/Series/DataFrame/函数),False的位置替换为此值(默认NaN)
-
inplace:是否原地修改(默认False,返回新对象)
-
axis:对齐轴(用于索引对齐)
![image]()
-
重复数据处理
检测重复行
-
判断重复行
![]()
-
指定列判断重复
![]()
删除重复行

字符串操作
DataFrame的字符串拼接,大小写转换,替换与字符串的函数基本一致
pd.to_datetime():时间序列处理
数字类型转换成日期类型,数字类型如果不想被当做时间戳转换,就得先转换成字符串类型,在转成日期类型
核心参数:
-
arg:字符串、日期时间对象、列表、元组、一维数组、Series、DataFrame
-
erros:错误处理,raise(默认,抛错),coerce(无效值转换成NaT),ignore(忽略)
-
dayfirst:当日期模糊时,(如01/01/2025),优先解析为日/月格式
-
yearfirst:优先解析为年/月/日,默认为False,当yearfirst=True时,优先级高于dayfirst
-
format:格式化字符串;用来指定输入字符串的格式,而不是目标格式
![]()
数据分组
groupby():分组操作
-
分组
![]()
-
查询
![]()
pd.cut():数据分箱(离散化)
将连续型数值数据分割为离散的区间(分箱),常用于数据分组或转换。
核心参数:
-
x:要分箱的一维数组或者Series
-
bins:定义分箱的边界,整数:自动生成n个等宽区间,列表:自定义边界
-
labels:为每个区间指定标签,标签列表长度必须比bins少1
-
right:是否包含右边界,默认为True,即左开右闭
-
precision:区间边界的小数位精度
-
include_lowest:是否包含最小值,默认False,第一个区间左开右闭时可能要设为True
![]()
pd.qcut()按等频分位数分箱,保证每箱数据量均衡
比较
-
相同点
- 两者都用于将数据按照某种规则分成不同组别,便于后续分析或聚合操作
- pd.cut()生成的离散分组结果,常作为groupby的分组键值,组合使用
![]()
-
不同点
![]()

数据选择与过滤
query():布尔索引的简化,布尔索引上面有写过


数据合并与连接
测试数据

pd.concat:沿轴拼接数据,需要匹配索引,否则直接向下拼接
- DataFrame拼接Series,索引不匹配的情况下,指定axis=1也不能横向拼接
![]()

-
DataFrame拼接Series
![]()
-
DataFrame拼接DataFrame横向拼接
![]()
pd.merge:数据库风格连接
-
列数据重复,导致合并后保留所有的匹配组合
![]()
-
以某列为基准的合并,那一列不能有重复数据
![]()
join:索引对齐连接
-
DataFrame拼接Series,由于Series没有列名报错
![]()
-
DataFrame拼接DataFrame
![]()
比较不同合并方法

其他功能拓展
属性类
value_counts():根据值来进行统计(本人真的觉得它好用到爆)

reset_index():将索引转换为常规数据列(会用在value_counts)

多重索引

日期类
提取年月日
-
提取单个
![]()
-
提取多个
![image]()
高级演示
- 时间窗口计算(暂时没有实例,所以先copy一下代码)
# 7天滚动平均值 df['RollingAvg'] = df['Sales'].rolling(window='7D').mean() # 重采样为月统计 monthly = df.resample('M', on='Date').agg({'Sales': 'sum'})
数据计算类
pct_change():直接计算相邻元素的百分比变化


corr():计算列间相关系数
计算数据框中各列之间的相关系数矩阵
核心参数:
- method:相关系数类型,'pearson'(默认)、'spearman'、'kendall'
- min_periods:计算所需的最小样本数
- numeric_only:是否仅计算数值列的相关系数(默认False,需Pandas 2.0+)
cumsum():数据累加





























































浙公网安备 33010602011771号