1128 字
6 分钟
数据分析|Series的常用方法

15.1 Series 常用方法概述
Pandas Series 提供了丰富的方法用于数据统计、清洗和操作。下表按功能分类列出:
常用方法总览
| 方法 | 说明 |
|---|---|
head() | 查看前 n 行数据,默认 5 行 |
tail() | 查看后 n 行数据,默认 5 行 |
isin() | 判断元素是否包含在参数集合中 |
isna() | 判断是否为缺失值(如 NaN 或 None) |
sum() | 求和,自动忽略缺失值 |
mean() | 平均值 |
min() | 最小值 |
max() | 最大值 |
var() | 方差 |
std() | 标准差 |
median() | 中位数 |
mode() | 众数(可返回多个) |
quantile(q) | 分位数,q 取 0~1 之间 |
describe() | 常见统计信息(count、mean、std、min、25%、50%、75%、max) |
value_counts() | 每个唯一值的出现次数 |
count() | 非缺失值数量 |
nunique() | 唯一值个数(去重) |
unique() | 获取去重后的值数组 |
drop_duplicates() | 去除重复项 |
sample() | 随机抽样 |
sort_index() | 按索引排序 |
sort_values() | 按值排序 |
replace() | 替换值 |
keys() | 返回 Series 的索引对象 |
15.2 统计与描述方法
以下示例基于一个包含缺失值的 Series:
import pandas as pdimport numpy as np
s = pd.Series([10, 2, np.nan, None, 3, 4, 5], index=['A', 'B', 'C', 'D', 'E', 'F', 'G'], name='data')print(s)输出:
A 10.0B 2.0C NaND NaNE 3.0F 4.0G 5.0Name: data, dtype: float6415.2.1 数据预览
print(s.head()) # 默认取前5行print(s.tail()) # 默认取后5行输出:
A 10.0B 2.0C NaND NaNE 3.0Name: data, dtype: float64C NaND NaNE 3.0F 4.0G 5.0Name: data, dtype: float6415.2.2 描述性统计
print(s.describe())输出:
count 5.000000mean 4.800000std 3.114482min 2.00000025% 3.00000050% 4.00000075% 5.000000max 10.000000Name: data, dtype: float64describe() 一次性返回 count(非缺失值数量)、mean、std、min、四分位数和 max,是数据探索的第一步常用操作。
15.2.3 常用统计计算
print(s.mean()) # 平均值print(s.sum()) # 总和print(s.std()) # 标准差print(s.var()) # 方差print(s.min()) # 最小值print(s.max()) # 最大值print(s.median()) # 中位数print(s.quantile(0.25)) # 第25百分位数输出:
4.824.03.11448230047948779.7000000000000012.010.04.03.015.2.4 众数
s['H'] = 4print(s.mode())输出:
0 4.0Name: data, dtype: float64mode() 返回众数,可能有多个值,返回一个 Series。
15.2.5 缺失值判断
print(s.isna()) # 判断每个元素是否为缺失值输出:
A FalseB FalseC TrueD TrueE FalseF FalseG FalseH FalseName: data, dtype: boolprint(s.count()) # 非缺失值数量输出:
615.2.6 元素包含判断
print(s.isin([4, 5, 6])) # 判断元素是否在指定集合中输出:
A FalseB FalseC FalseD FalseE FalseF TrueG TrueH TrueName: data, dtype: bool15.3 去重、排序与索引方法
15.3.1 唯一值与去重
print(s.value_counts()) # 每个唯一值的出现次数print(s.drop_duplicates()) # 去重(返回 Series)print(s.unique()) # 去重(返回 numpy 数组)print(s.nunique()) # 去重后的元素个数输出:
data4.0 210.0 12.0 13.0 15.0 1Name: count, dtype: int64
A 10.0B 2.0C NaNE 3.0F 4.0G 5.0Name: data, dtype: float64
[10. 2. nan 3. 4. 5.]
5要点说明:
value_counts()用于统计频次,默认按出现次数降序排列。drop_duplicates()返回去重后的 Series,保留原始索引。unique()返回去重后的 numpy 数组。nunique()返回去重后的个数(整数)。
15.3.2 排序
print(s.sort_index()) # 按索引排序print(s.sort_values()) # 按值排序(缺失值默认排在末尾)输出:
A 10.0B 2.0C NaND NaNE 3.0F 4.0G 5.0H 4.0Name: data, dtype: float64
B 2.0E 3.0F 4.0H 4.0G 5.0A 10.0C NaND NaNName: data, dtype: float6415.3.3 索引对象
print(s.keys()) # 返回索引对象print(s.index) # 属性方式获取索引输出:
Index(['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], dtype='object')Index(['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], dtype='object')15.4 案例中涉及的补充方法
以下方法在实际数据分析案例中出现,作为补充参考:
| 方法 | 说明 |
|---|---|
diff() | 计算相邻元素之间的差值,常用于分析变化量 |
pct_change() | 计算相邻元素之间的百分比变化率,常用于收益率、环比分析 |
idxmax() | 返回最大值的索引标签 |
idxmin() | 返回最小值的索引标签 |
rolling(n) | 生成滚动窗口对象,配合 sum()、mean() 等进行滑动计算 |
resample(rule) | 按指定频率重采样时间序列数据(如按天聚合到按月) |
abs() | 对每个元素取绝对值,常配合 diff() 使用获取变化幅度 |
tolist() | 将 Series 的索引或值转换为 Python 列表 |
15.5 本节小结
本节完成了以下内容:
- 掌握了 Series 的统计描述方法:
describe()、mean()、sum()、std()、var()、min()、max()、median()、mode()、quantile()。 - 掌握了缺失值判断方法:
isna()、count()。 - 掌握了元素判断与过滤:
isin()。 - 掌握了去重相关方法:
value_counts()、drop_duplicates()、unique()、nunique()。 - 掌握了排序方法:
sort_index()、sort_values()。 - 了解了案例中涉及的补充方法:
diff()、pct_change()、idxmax()、idxmin()、rolling()、resample()、abs()、tolist()。
下一节我们将通过 Series 案例 综合练习所学方法。
数据分析
连载中分享文章
生成精美分享图或复制链接,与更多人分享本文。
继续阅读
换条路线
从其他文章中稳定抽取
最后更新于 ,距今已过 91 天
部分内容可能已过时
评论