关于Pandas版本: 本文基于 pandas2.2.0 编写。
关于本文内容更新: 随着pandas的stable版本更迭,本文持续更新,不断完善补充。
传送门: Pandas API参考目录
传送门: Pandas 版本更新及新特性
传送门: Pandas 由浅入深系列教程
本节目录
- Pandas.Series.sum()
- 计算公式:
- 语法:
- 返回值:
- 参数说明:
- axis 指定计算方向
- skipna 忽略缺失值
- min_count 有效数值数量
- **kwargs 关键字参数
- 相关方法:
- 示例:
- 例1:`Series` 始终保持 `axis=0`,即计算`Series`的累和。
- 例2:可以都是字符串类型的数据,字符串支持求累和。但是,如果和数值类型的数据混在一起,会报错!
- 例2-1、全是字符串是可以求累和的(相当于字符串拼接)
- 例2-2、字符串类型的Series如果存在[缺失值](https://blog.csdn.net/sumgqinsky/article/details/134620311?spm=1001.2014.3001.5501)(`NaN`) 会报错
- 例3:都是缺失值,那么累和结果是0.0。
- 例4:控制有效值数量
Pandas.Series.sum()
Pandas.Series.sum
方法用于返回 Series
所有元素的累加和。
- 字符串求累和,相当于字符串拼接。例2-1
计算公式:
-
Pandas累和计算公式:
∑ i = 0 n − 1 x i \sum_{i=0}^{n-1} x_{i} ∑i=0n−1xi
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=0n−1xi=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 - False: 不忽略缺失值。
min_count 有效数值数量
-
min_count : int, default 0
min_count
参数,用于指定执行操作所需的有效值数量。如果存在的非NA
值少于min_count
,则结果将为NA
。例4
**kwargs 关键字参数
- kwargs
kwargs
参数,是为了保持与Numpy
的兼容性而保留的参数,一般不需要传递任何内容。
相关方法:
➡️ 相关方法
Series.min
最小值
Series.max
最大值
Series.idxmin
最小值索引
Series.idxmax
最大值索引
DataFrame.sum
求和(累和)
DataFrame.min
最小值
DataFrame.max
最大值
DataFrame.idxmin
最小值索引
DataFrame.idxmax
最大值索引
示例:
测试文件下载:
本文所涉及的测试文件,如有需要,可在文章顶部的绑定资源处下载。
若发现文件无法下载,应该是资源包有内容更新,正在审核,请稍后再试。或站内私信作者索要。
例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