Pandas.DataFrame.sum() 求和 详解 含代码 含测试数据集 随Pandas版本持续更新 您所在的位置:网站首页 求每一列的和 Pandas.DataFrame.sum() 求和 详解 含代码 含测试数据集 随Pandas版本持续更新

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

2024-06-29 22:21| 来源: 网络整理| 查看: 265

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

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

传送门: Pandas API参考目录

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

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

本节目录 Pandas.DataFrame.sum()计算公式:语法:返回值:参数说明:axis 指定计算方向(行或列)skipna 忽略缺失值numeric_only 排除非纯数值的行或列min_count 有效数值数量**kwargs 关键字参数 相关方法:示例:例1:如果是 `Series` 始终保持 `axis=0`,即计算整列的求和。例2:整行或整列,可以都是字符串类型的数据,字符串支持求求和。但是,如果和数值类型的数据混在一起,会报错!例2-1、全是字符串是可以求求和的例2-2、字符串类型的行、列如果存在[缺失值](https://blog.csdn.net/sumgqinsky/article/details/134620311?spm=1001.2014.3001.5501)(`NaN`) 会报错例2-3、字符串类型,如果和数值类型的数据混在一起,会报错!例2-4、当 `axis=None` 时, `DataFrame` 的所有值的数据类型必须是相同的,要么都是字符串类型的,要么都是数值类型的,否则会报错!例2-5、求 `DataFrame` 每列的求和例2-6、求 `DataFrame` 每行的求和 例3:如果整行或整列,都是缺失值,那么求和结果是0.0。例4:`numeric_only=True` 只对数值类型的数据求求和例5:控制有效值数量

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

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

Pandas稳定版更新及变动内容整合专题: Pandas稳定版更新及变动迭持续更新。

Pandas API参考所有内容目录

本节目录 Pandas.DataFrame.sum()计算公式:语法:返回值:参数说明:axis 指定计算方向(行或列)skipna 忽略缺失值numeric_only 排除非纯数值的行或列min_count 有效数值数量**kwargs 关键字参数 相关方法:示例:例1:如果是 `Series` 始终保持 `axis=0`,即计算整列的求和。例2:整行或整列,可以都是字符串类型的数据,字符串支持求求和。但是,如果和数值类型的数据混在一起,会报错!例2-1、全是字符串是可以求求和的例2-2、字符串类型的行、列如果存在[缺失值](https://blog.csdn.net/sumgqinsky/article/details/134620311?spm=1001.2014.3001.5501)(`NaN`) 会报错例2-3、字符串类型,如果和数值类型的数据混在一起,会报错!例2-4、当 `axis=None` 时, `DataFrame` 的所有值的数据类型必须是相同的,要么都是字符串类型的,要么都是数值类型的,否则会报错!例2-5、求 `DataFrame` 每列的求和例2-6、求 `DataFrame` 每行的求和 例3:如果整行或整列,都是缺失值,那么求和结果是0.0。例4:`numeric_only=True` 只对数值类型的数据求求和例5:控制有效值数量

Pandas.DataFrame.sum()

Pandas.DataFrame.sum 方法用于返回行或列所有元素的和。

计算公式:

Pandas求和计算公式:

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

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−1​xi​=x0​+x1​+x2​+...+xn​ 语法:

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

返回值:

Series or scalar

输入的数据是单行或单列,则返回 scalar;输入的数据是多行或多列,则返回 Series。 参数说明: axis 指定计算方向(行或列)

axis : {0 or ‘index’, 1 or ‘columns’}, default 0

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

如果是 Series 此参数无效,将始终保持 axis=0,即计算整列的求和。例1如果是 DataFrame 默认为 axis=0 即计算每一列的求和。并有以下参值可选:

0 or ‘index’: 计算每列的求和。 例2-5

1 or ‘columns’: 计算每行的求和。例2-6

None: 计算所有值的求和,这相当于把 DataFrame 的所有值展平后求求和: df.sum(axis=None) 等效于 sum(df.values.raravel())

⚠️ 注意 :

整行或整列,可以都是字符串类型的数据,字符串支持求和(字符串相加的结果是拼接):例2

字符串类型的行或列,不能存在缺失值,会报错!TypeError 。例2-2字符串类型,如果和数值类型的数据混在一起,会报错!TypeError 例2-3当 axis=None 时, DataFrame 的所有值的数据类型必须是相同的,要么都是字符串类型的,要么都是数值类型的,否则会报错! TypeError 例2-4

⚠️ 注意 :

axis=None 已被标记为弃用,在未来的版本,将使用新的方法实现。

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

skipna 忽略缺失值

skipna : bool, default False >

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

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

⚠️ 注意 :

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

numeric_only 排除非纯数值的行或列

numeric_only : bool, default False

numeric_only 参数,用于控制是否 排除非纯数值的行或列:

False: 不排除。True: 只对纯数值型的行或列计算求和。例4 min_count 有效数值数量

min_count : int, default 0

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

**kwargs 关键字参数 kwargs kwargs 参数,是为了保持与 Numpy 的兼容性而保留的参数,一般不需要传递任何内容。 相关方法:

➡️ 相关方法

Series.sum

Series 求和

Series.min

最小值

Series.max

最大值

Series.idxmin

最小值索引

Series.idxmax

最大值索引

DataFrame.min

最小值

DataFrame.max

最大值

DataFrame.idxmin

最小值索引

DataFrame.idxmax

最大值索引

示例:

测试文件下载:

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

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

测试文件下载位置.png

测试文件下载位置

例1:如果是 Series 始终保持 axis=0,即计算整列的求和。 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、字符串类型的行、列如果存在缺失值(NaN) 会报错 import numpy as np import pandas as pd s = pd.Series(["一", "二", np.nan, "你"]) s.sum()

在这里插入图片描述

例2-3、字符串类型,如果和数值类型的数据混在一起,会报错! import numpy as np import pandas as pd s = pd.Series(["一", "二", 1, "你"]) s.sum()

在这里插入图片描述

例2-4、当 axis=None 时, DataFrame 的所有值的数据类型必须是相同的,要么都是字符串类型的,要么都是数值类型的,否则会报错! import numpy as np import pandas as pd df = pd.DataFrame( { "Person": ["John", "Myla", "Lewis", "John", "Myla"], "Age": [24.0, 2, 21.0, 33, 26], "Single": [False, True, True, True, False], } ) df.sum(axis=None)

在这里插入图片描述

例2-5、求 DataFrame 每列的求和 import numpy as np import pandas as pd df = pd.DataFrame( { "Person": ["John", "Myla", "Lewis", "John", "Myla"], "Age": [24.0, 2, 21.0, 33, 26], "Single": [False, True, True, True, False], } ) # 应返回的是Series,为了方便观察,使用.to_frame(),显式为表格形式 df.sum().to_frame() 0PersonJohnMylaLewisJohnMylaAge106.0Single3

例2-6、求 DataFrame 每行的求和 import numpy as np import pandas as pd df = pd.DataFrame( {"A": [28, "Lewis", True], "B": [24.0, "John", False], "C": [30, "Myla", True]} ) # 应返回的是Series,为了方便观察,使用.to_frame(),显式为表格形式 df.sum(axis=1).to_frame() 0082.01LewisJohnMyla22

例3:如果整行或整列,都是缺失值,那么求和结果是0.0。 import numpy as np import pandas as pd df = pd.DataFrame( {"A": [np.nan, np.nan]}, ) # 应返回的是Series,为了方便观察,使用.to_frame(),显式为表格形式 df.sum().to_frame() 0A0.0

例4:numeric_only=True 只对数值类型的数据求求和 df = pd.DataFrame({"A": [0.5,0.2], "B": ["a",0.7], "C": [True,0.1]}) df.sum(axis=0, numeric_only=True) # ... A 0.7 # ... dtype: float64

B列由于是数字+字符串,所以没有被计算最小值。 C列布尔值和浮点数混用,也没有被计算最小值

例5:控制有效值数量

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

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

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

pd.Series([np.nan]).sum(min_count=1) nan


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有