Pandas.Series.sum() 求和 详解 含代码 含测试数据集 随Pandas版本持续更新

关于Pandas版本: 本文基于 pandas2.2.0 编写。

关于本文内容更新: 随着pandas的stable版本更迭,本文持续更新,不断完善补充。

传送门: Pandas API参考目录

传送门: Pandas 版本更新及新特性

传送门: Pandas 由浅入深系列教程

Pandas.Series.sum()

Pandas.Series.sum 方法用于返回 Series 所有元素的和。

  • 字符串求和,相当于字符串拼接。例2-1

计算公式:

  • Pandas求和计算公式:

    ∑ i = 0 n − 1 x i \sum_{i=0}^{n-1} x_{i} i=0n1xi

    n n n 表示数值的总个数, i i i 表示起始索引下标, x x x 表示求和数值所在数组。

  • 计算过程:

    • ∑ i = 0 n − 1 x i = x 0 + x 1 + x 2 + . . . + x n \sum_{i=0}^{n-1} x_{i}=x_0+x_1 +x_2+...+x_n i=0n1xi=x0+x1+x2+...+xn

语法:

DataFrame.sum(axis=0, skipna=True, numeric_only=False, min_count=0, **kwargs)

返回值:

  • scalar

参数说明:

axis 指定计算方向

  • axis : {0 or ‘index’}

    axis 参数,用于指定计算方向,即按行计算或按列计算求和:

    • 对于 Series 此参数无效,将始终保持 axis=0,即计算整列的求和。例1

    ⚠️ 注意 :

    axis=None 已于弃用。

新增于 Pandas 2.0.0 : axis 参数,新增于Pandas 2.0.0 版本。

skipna 忽略缺失值

  • skipna : bool, default False >

    skipna 参数,用于指定求求和的时候是否忽略缺失值:

    • False: 不忽略缺失值。
      • 缺失值 ,在求和的时候,会被解析为浮点数 float 0.0
      • 当字符串和缺失值混合时,会报错!TypeError例2-2
    • True: 忽略缺失值。

    ⚠️ 注意 :

    如果整行或整列,都是缺失值,那么求和结果是0,因为在 DataFrame.sum 方法中,缺失值会被解析为 浮点数0.0 例3

min_count 有效数值数量

  • min_count : int, default 0

    min_count 参数,用于指定执行操作所需的有效值数量。如果存在的非 NA 值少于 min_count,则结果将为 NA例4

**kwargs 关键字参数

  • kwargs
    kwargs 参数,是为了保持与 Numpy 的兼容性而保留的参数,一般不需要传递任何内容。

相关方法:

➡️ 相关方法


示例:

测试文件下载:

本文所涉及的测试文件,如有需要,可在文章顶部的绑定资源处下载。

若发现文件无法下载,应该是资源包有内容更新,正在审核,请稍后再试。或站内私信作者索要。

测试文件下载位置.png

测试文件下载位置

例1:Series 始终保持 axis=0,即计算Series的求和。

import numpy as np
import pandas as pd

s = pd.Series([24.0, np.nan, 21.0, 33, 26], name="age")
s.sum()
104.0

例2:可以都是字符串类型的数据,字符串支持求求和。但是,如果和数值类型的数据混在一起,会报错!

例2-1、全是字符串是可以求求和的(相当于字符串拼接)
import numpy as np
import pandas as pd

s = pd.Series(["一", "二", "你"])
s.sum()
'一二你'

例2-2、字符串类型的Series如果存在缺失值NaN) 会报错
import numpy as np
import pandas as pd

s = pd.Series(["一", "二", np.nan, "你"])
s.sum()

在这里插入图片描述

例3:都是缺失值,那么求和结果是0.0。

import numpy as np
import pandas as pd

s = pd.Series([np.nan, np.nan])

s.sum()
0.0

例4:控制有效值数量

如果不限制有效值数量,即便存在缺失值(NaN),也会被解析为浮点数0.0

pd.Series([np.nan]).sum()
0.0

限制了有效值数量,如果存在的非 NA 值少于 min_count,则结果将为 NA

pd.Series([np.nan]).sum(min_count=1)
nan
### Pandas Series 的 `rolling` 方法详解 #### 定义与功能 Pandas 提供了强大的时间序列分析工具,其中 `.rolling()` 是用于实现滑动窗口操作的核心方法之一。该方法允许用户定义一个固定大小的窗口,在此窗口上执行各种聚合运算(如均值、求和等),从而提取数据的趋势特征或平滑噪声。 `.rolling()` 可应用于 DataFrame 或 Series 数据结构。当作用于 Series 时,它会返回一个新的对象——Rolling 对象,通过调用相应的统计方法来完成具体计算[^1]。 #### 参数说明 以下是 `.rolling()` 函数的主要参数及其义: - **window**: 指定窗口大小,可以是一个整数或者偏移量字符串。 - **min_periods**: 窗口中所需的最小观测数量,默认等于 window 参数值。如果实际有效样本少于此数值,则结果为 NaN。 - **center**: 是否将窗口居中放置,默认为 False 表示右对齐。 - **win_type**: 设置窗函数类型,可选值包括但不限于 'boxcar', 'triang' 等,默认 None 使用均匀权重[^4]。 #### 实际应用案例 下面展示如何利用 pandas.Series 的 rolling 方法来进行基本的数据处理: ```python import pandas as pd # 创建测试序列 s = pd.Series([1, 2, 3, 4, 5]) # 计算长度为3的移动平均 ma_series = s.rolling(window=3).mean() print(ma_series) # 移动求和实例 ms_series = s.rolling(window=3).sum() print(ms_series) ``` 上述代码片段展示了两个常见的应用场景:一是基于三个连续点位取平均值得到新的序列;二是同样范围内的累加操作[^2]。 另外值得注意的是自定义计算逻辑的能力。借助 apply 方法能够灵活扩展内置的支持之外的功能需求: ```python custom_roll = s.rolling(window=3).apply(lambda x: (x**2).sum(), raw=True) print(custom_roll) ``` 这里我们尝试平方后再相加作为例子进行了演示[^3]。 #### 性能考量 尽管 Rolling API 非常强大且易于使用,但在大规模数据上的表现可能成为瓶颈所在。因此针对特定场景优化算法设计显得尤为重要。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数象限

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值