在Python数据分析中,Pandas是最核心的工具库,而Series是Pandas最基础的数据结构,是构建DataFrame的基石。掌握Series的各类操作方法,是玩转数据分析的第一步。
今天结合实战代码案例,从零整理Series数据访问、切片查询、数据修改、筛选匹配、统计计算、索引操作、缺失值处理、去重排序全场景常用方法,新手可直接收藏复用!
前置依赖:提前导入库import pandas as pd
一、Series 基础创建
Series是Pandas中最基础的数据结构,掌握其创建方式是后续所有操作的前提。下面介绍4种最常用的创建方式,覆盖不同数据来源场景。
1. 创建Series对象,采用:默认自增索引
直接传入Python列表,不指定索引,Pandas会自动生成从0开始的整数下标作为默认索引。
# 创建Series对象,采用默认自增索引 s_default = pd.Series([10, 20, 30, 40]) print(s_default)2. 创建Series对象,采用:自定义索引
通过index参数指定自定义索引标签,便于按业务含义定位数据,是实际开发中最常用的方式。
# 创建Series对象,采用自定义索引 s_custom = pd.Series([88, 92, 85], index=['张三', '李四', '王五']) print(s_custom)3. 创建Series对象,采用:字典或元组创建
传入字典时,键自动成为索引、值成为数据;传入元组时,与列表类似,索引默认为自增整数。
# 通过字典创建Series,键作为索引 s_dict = pd.Series({'a': 1, 'b': 2, 'c': 3}) print(s_dict) # 通过元组创建Series,索引默认为自增整数 s_tuple = pd.Series((5, 6, 7, 8)) print(s_tuple)4. 创建Series对象,采用:使用numpy创建
传入NumPy数组,适合与数值计算场景衔接,索引同样默认为整数下标。
import numpy as np # 使用numpy数组创建Series s_np = pd.Series(np.array([1, 2, 3, 4, 5])) print(s_np)核心特点:Series由「索引index」和「数值values」两部分组成,索引可自定义,区别于普通列表。
除了上述4种方式,Series还支持通过标量值创建和通过DataFrame的列创建,覆盖更多数据来源场景:
5. 通过标量值创建
传入单个标量并指定索引,所有索引位置都会填充该标量值。
# 通过标量创建,所有索引位置填充同一个值 s_scalar = pd.Series(7, index=['a', 'b', 'c']) print(s_scalar)6. 通过DataFrame的列创建
从DataFrame中提取某一列,得到对应的Series,是表格数据处理中的高频操作。
# 通过DataFrame的列创建Series df = pd.DataFrame({'姓名':['张三','李四','王五'], '成绩':[88, 92, 85]}) s_col = df['成绩'] print(s_col)二、Series 常用属性
除了创建方式,掌握Series的常用属性也是高效操作的基础。下面列出最核心的几个属性:
s = pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd']) print("索引:", s.index) # 获取索引对象 print("数值:", s.values) # 获取数值数组 print("数据类型:", s.dtype) # 获取元素类型 print("元素个数:", s.size) # 获取元素总数 print("维度:", s.ndim) # 维度,Series恒为1 print("形状:", s.shape) # 形状,返回(元素个数,) print("是否为空:", s.empty) # 判断是否为空 print("名称:", s.name) # 获取/设置Series名称- index:获取索引对象,可自定义标签
- values:获取数值数组,返回NumPy数组
- dtype:查看元素数据类型(如int64、float64、object)
- size:返回元素总个数
- ndim:返回维度数,Series恒为1
- shape:返回形状元组,如(4,)
- empty:判断Series是否为空,返回布尔值
- name:获取或设置Series的名称,便于标识数据
三、数据访问与切片查询
Series支持标签索引和位置索引两种查询方式,切片规则灵活,是数据读取的核心方法。
1. 标签切片(按自定义索引)
通过索引标签取值,切片为闭区间,首尾索引数据都会保留。
print(s['a':'c']) # 取索引a~c的所有数据2. 位置切片(按默认下标)
和Python列表切片一致,为左闭右开区间,仅根据数据位置取值。
print(s[0:2]) # 取前2个位置的数据3. 单个标签取值
print(s['c']) # 获取索引c对应的单个数值避坑提示:Pandas新版中,直接使用s[数字]做位置取值会触发警告,推荐用iloc位置索引、loc标签索引,代码更规范。
四、快速查看首尾数据
日常数据分析中,快速预览数据的高频方法,默认查看5行,可自定义行数。
# 查看前1行数据 print("head:",s.head(1)) # 查看后2行数据 print("tail:",s.tail(2))head(n):查看前n行数据,n默认=5
tail(n):查看后n行数据,n默认=5
五、Series 数据新增修改
可直接通过索引赋值,快速新增数据,语法简洁直观。
s['f'] = 6 # 新增索引f,对应数值6 print("head:",s.head()) print("tail:",s.tail(2))六、数据筛选与匹配判断
用于精准筛选符合条件的数据,支持单值匹配、多值匹配、索引匹配。
1. 索引匹配:isin() 匹配索引
判断索引是否在指定集合中,返回布尔结果。
print(s.index.isin(['a']))2. 单值数值匹配
判断每个元素数值是否等于目标值,逐元素返回布尔结果。
print(s==3)3. 多值数值匹配:isin() 匹配数值
判断元素是否在指定数值集合中,实现多条件筛选。
print(s.isin([3,5]))七、常用统计分析方法
Series内置全套数理统计方法,无需复杂计算,一键获取数据分布特征,是数据分析核心功能。
print("求和:",s.sum()) # 所有元素求和 print("平均值:",s.mean()) # 算术平均值 print("方差:",s.var()) # 样本方差 print("标准差:",s.std()) # 样本标准差 print("最小值:",s.min()) # 最小值 print("最大值:",s.max()) # 最大值 print("中位数:",s.median()) # 中位数八、索引获取方法
两种等价方法获取Series的索引对象,可用于索引遍历、匹配、修改。
print("Series的索引对象:",s.index) print("Series的索引对象:",s.keys())结论:index和keys()效果完全一致,均可获取全部索引。
九、缺失值处理(高频实操)
真实业务数据大多存在缺失值,Series提供专属方法快速检测、统计缺失数据。先初始化含缺失值的Series:
# 含None缺失值的Series s = pd.Series({'b':None,'c':3,'f':1,'a':1,'d':4,'e':5,'g':3},name='月份') print(s) 1. 检测所有缺失值 print("检查每一个元素是否为缺失值:",s.isna()) 2. 统计各数值出现次数(自动忽略缺失值) print("每个唯一值出现的次数:",s.value_counts()) 3. 统计有效非缺失值数量 print("非缺失值数量:",s.count())isna():逐元素判断是否为缺失值(None/NaN),返回布尔序列
value_counts():统计各数值频次,自动过滤缺失值
count():统计有效非空数据总量
十、数据去重操作
针对重复数据,提供去重、统计唯一值数量、获取唯一值数组全套方法。
print("获取去重后的值数组:",s.unique()) print("去除重复项:",s.drop_duplicates()) print("唯一值个数:",s.nunique())unique():返回去重后的数值数组,保留原始顺序
drop_duplicates():返回去重后的完整Series(保留索引)
nunique():统计唯一值的总个数
十一、排序操作
支持按索引排序和按数值排序两种核心排序方式,适配不同数据整理需求。
# 按索引字母顺序排序 print("按索引排序:",s.sort_index()) # 按数值大小升序排序 print("按值排序:",s.sort_values())sort_index():根据索引排序,默认升序
sort_values():根据元素数值排序,默认升序
十二、Series 核心方法汇总表
功能分类 | 常用方法 | 作用说明 |
|---|---|---|
数据预览 | head()、tail() | 查看首尾数据,快速预览 |
数据筛选 | isin()、条件判断(==) | 匹配索引/数值,筛选数据 |
统计计算 | sum/mean/var/std/min/max/median | 基础数理统计分析 |
索引操作 | index、keys() | 获取Series全部索引 |
缺失值处理 | isna()、count()、value_counts() | 检测、统计缺失值与数据频次 |
数据去重 | unique()、drop_duplicates()、nunique() | 去重、统计唯一值数量 |
数据排序 | sort_index()、sort_values() | 按索引/数值排序 |
十三、学习总结
Series作为Pandas的基础结构,所有操作逻辑均可迁移至DataFrame。熟练掌握查询切片、筛选匹配、统计分析、缺失值处理、去重排序这几类核心方法,就能搞定80%的基础数据预处理工作,为后续表格数据处理、数据分析可视化打下坚实基础。
本文所有代码可直接复制运行,建议收藏留存,日常写代码时随时查阅复用!