Series是pandas库中用于存储一维带标签数据的核心数据结构,它由一组数据和一组与之对应的索引组成,既可以通过位置索引访问数据,也可以通过自定义的标签索引访问数据,在日常的数据清洗、分析和预处理工作中使用频率非常高。

Series基础属性查看方法
创建Series之后,首先可以通过基础属性快速了解数据的基本情况,常用的属性如下:
- values:返回Series中的数据部分,以numpy数组形式呈现
- index:返回Series的索引对象
- dtype:返回Series中数据的数据类型
- shape:返回Series的形状,一维数据返回长度元组
- name:返回Series的名称,可自定义设置
以下是属性查看的示例代码:
import pandas as pd import numpy as np # 创建示例Series s = pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd'], name='score') # 查看数据部分 print(s.values) # 查看索引 print(s.index) # 查看数据类型 print(s.dtype) # 查看形状 print(s.shape) # 查看名称 print(s.name)
Series索引相关方法
基础索引访问
Series支持两种索引方式,分别是位置索引和标签索引,也可以通过切片操作获取部分数据:
import pandas as pd s = pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd']) # 位置索引,获取第一个元素 print(s[0]) # 标签索引,获取索引为b的元素 print(s['b']) # 切片操作,位置切片左闭右开 print(s[1:3]) # 标签切片左闭右闭 print(s['b':'d'])
索引修改与重置
如果需要修改Series的索引,可以直接对index属性赋值,也可以通过reindex方法重新指定索引,不存在的索引位置会自动填充缺失值:
import pandas as pd import numpy as np s = pd.Series([10, 20, 30], index=['a', 'b', 'c']) # 直接修改索引 s.index = ['x', 'y', 'z'] print(s) # 使用reindex重新指定索引,新增的索引位置填充NaN new_s = s.reindex(['x', 'y', 'z', 'm']) print(new_s)
Series数据统计方法
Series内置了丰富的统计计算相关方法,无需额外编写复杂逻辑即可完成常见统计需求:
| 方法名 | 功能说明 |
|---|---|
| sum() | 计算所有元素的总和 |
| mean() | 计算所有元素的均值 |
| max() | 返回最大值 |
| min() | 返回最小值 |
| count() | 返回非缺失值的数量 |
| std() | 计算标准差 |
| var() | 计算方差 |
| describe() | 返回包含计数、均值、标准差、分位数等信息的统计摘要 |
以下是统计方法的示例代码:
import pandas as pd import numpy as np s = pd.Series([10, 20, 30, 40, 50]) # 计算总和 print(s.sum()) # 计算均值 print(s.mean()) # 计算最大值 print(s.max()) # 计算最小值 print(s.min()) # 获取统计摘要 print(s.describe())
Series缺失值处理方法
实际数据处理中经常会遇到缺失值,Series提供了对应的方法处理缺失值:
- isnull():返回布尔型Series,缺失值位置为True
- notnull():返回布尔型Series,非缺失值位置为True
- dropna():删除所有包含缺失值的行
- fillna(value):用指定值填充所有缺失值
示例代码如下:
import pandas as pd import numpy as np s = pd.Series([10, np.nan, 30, np.nan, 50]) # 判断缺失值 print(s.isnull()) # 判断非缺失值 print(s.notnull()) # 删除缺失值 print(s.dropna()) # 用0填充缺失值 print(s.fillna(0))
Series数据运算方法
Series支持常见的算术运算,运算时会按照索引对齐数据,索引不匹配的位置会生成缺失值:
import pandas as pd s1 = pd.Series([1, 2, 3], index=['a', 'b', 'c']) s2 = pd.Series([4, 5, 6], index=['b', 'c', 'd']) # 加法运算,索引对齐后计算 print(s1 + s2) # 乘法运算 print(s1 * 2)
Series数据排序方法
Series的排序分为按索引排序和按值排序两种:
- sort_index(ascending=True):按索引排序,ascending控制升序降序
- sort_values(ascending=True):按值排序,ascending控制升序降序
示例代码如下:
import pandas as pd s = pd.Series([30, 10, 40, 20], index=['c', 'a', 'd', 'b']) # 按索引升序排序 print(s.sort_index()) # 按值降序排序 print(s.sort_values(ascending=False))