Pandas 中文手册

3.4 Series的数值操作与计算

Pandas Series数值操作与计算全面指南:从基础到实践

Pandas 中文手册

本章节详细讲解Pandas Series的数值操作与计算,涵盖基本算术运算、统计函数、排序、去重和缺失值处理,适合数据分析新手快速入门并掌握核心技能。

推荐工具
PyCharm专业版开发必备

功能强大的Python IDE,提供智能代码补全、代码分析、调试和测试工具,提高Python开发效率。特别适合处理列表等数据结构的开发工作。

了解更多

Series的数值操作与计算

引言

Pandas Series是数据分析中不可或缺的一维数据结构,它结合了数组的效率和标签索引的灵活性。在实际应用中,我们经常需要对Series进行各种数值操作和计算,以提取数据洞察。本章节将介绍Series的数值操作基础,帮助新手轻松上手。

基本算术运算

Series支持基本的算术运算,如加、减、乘、除。这些运算可以应用于标量(单个数值)或另一个Series。需要注意的是,当与另一个Series运算时,Pandas会自动基于索引对齐数据。

示例:

import pandas as pd

# 创建一个Series
s = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])
print("原始Series:", s)

# 与标量运算(每个元素加5)
print("与标量相加(+5):", s + 5)

# 与另一个Series运算(对应位置相加)
s2 = pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd'])
print("与另一个Series相加:", s + s2)

统计运算

Series提供了多种内置统计函数,用于快速计算数据的统计特性。这些函数返回标量结果,便于分析和比较。

常用统计函数包括:

  • count(): 返回非缺失值的数量
  • sum(): 返回所有元素的和
  • mean(): 返回平均值
  • median(): 返回中位数
  • max(): 返回最大值
  • min(): 返回最小值
  • std(): 返回标准差(可选参数调整自由度)
  • var(): 返回方差(可选参数调整自由度)

示例:

s = pd.Series([1, 2, 3, 4, 5])
print("Series:", s)
print("总和 (sum):", s.sum())
print("平均值 (mean):", s.mean())
print("中位数 (median):", s.median())
print("最大值 (max):", s.max())
print("最小值 (min):", s.min())

排序操作

排序是数据处理中的常见需求。Series允许按值或按索引排序,提供灵活的数据组织方式。

  • sort_values(): 按值排序,默认升序,可通过参数 ascending=False 设为降序
  • sort_index(): 按索引排序,同样支持升序或降序

示例:

s = pd.Series([3, 1, 4, 2], index=['b', 'a', 'd', 'c'])
print("原始Series:", s)

# 按值排序(升序)
print("按值排序 (sort_values):", s.sort_values())

# 按索引排序(升序)
print("按索引排序 (sort_index):", s.sort_index())

# 降序排序示例
print("按值降序排序:", s.sort_values(ascending=False))

去重与唯一值

当Series中存在重复值时,可以使用去重方法来分析数据的唯一性。Pandas提供了几种常用方法:

  • unique(): 返回一个数组,包含Series中的所有唯一值
  • nunique(): 返回唯一值的数量(忽略缺失值)
  • value_counts(): 返回一个Series,显示每个唯一值及其出现次数,默认按次数降序排列

示例:

s = pd.Series([1, 2, 2, 3, 3, 3, None])  # 包含缺失值
print("原始Series:", s)

# 获取唯一值数组
print("唯一值 (unique):", s.unique())

# 获取唯一值数量
print("唯一值数量 (nunique):", s.nunique())

# 统计每个值出现次数
print("值计数 (value_counts):", s.value_counts(dropna=False))  # 包含缺失值计数

缺失值相关操作

缺失值在现实数据中很常见,正确处理它们是数据分析的关键一步。Pandas提供了检测缺失值的基本方法。

  • isnull(): 返回一个布尔Series,指示每个位置是否为缺失值(True表示缺失)
  • notnull(): 返回一个布尔Series,指示每个位置是否非缺失值(True表示非缺失)

提前入门: 除了检测,后续章节会介绍如何处理缺失值,例如使用 fillna() 填充缺失值或 dropna() 删除缺失值。这里先打好基础。

示例:

s = pd.Series([1, 2, None, 4, None])
print("原始Series:", s)

# 检测缺失值
print("缺失值检测 (isnull):", s.isnull())

# 检测非缺失值
print("非缺失值检测 (notnull):", s.notnull())

# 结合使用,例如筛选非缺失值
print("非缺失值:", s[s.notnull()])

总结

本章节系统介绍了Pandas Series的数值操作与计算,包括基本算术运算、统计运算、排序、去重和缺失值检测。这些是数据分析的基石,建议新手通过练习代码示例来巩固理解。掌握这些操作后,您将能更高效地处理和分析数据。

小提示: 在实际项目中,多尝试结合不同操作,例如先排序再统计,以深化学习效果。

开发工具推荐
Python开发者工具包

包含虚拟环境管理、代码格式化、依赖管理、测试框架等Python开发全流程工具,提高开发效率。特别适合处理复杂数据结构和算法。

获取工具包