当前位置: 首页 > news >正文

【Pandas】pandas DataFrame sum

Pandas2.2 DataFrame

Computations descriptive stats

方法描述
DataFrame.abs()用于返回 DataFrame 中每个元素的绝对值
DataFrame.all([axis, bool_only, skipna])用于判断 DataFrame 中是否所有元素在指定轴上都为 True
DataFrame.any(*[, axis, bool_only, skipna])用于判断 DataFrame 中是否至少有一个元素在指定轴上为 True
DataFrame.clip([lower, upper, axis, inplace])用于截断(限制)DataFrame 中的数值
DataFrame.corr([method, min_periods, …])用于计算 DataFrame 中各列之间的相关系数矩阵(Correlation Matrix)
DataFrame.corrwith(other[, axis, drop, …])用于计算当前 DataFrame 的每一列(或行)与另一个 Series 或 DataFrame 中对应列的相关系数
DataFrame.count([axis, numeric_only])用于统计 DataFrame 中每列或每行的非空(非 NaN)元素数量
DataFrame.cov([min_periods, ddof, numeric_only])用于计算 DataFrame 中每对列之间的协方差
DataFrame.cummax([axis, skipna])用于计算 DataFrame 中每列或每行的累计最大值(cumulative maximum)
DataFrame.cummin([axis, skipna])用于计算 DataFrame 中每列或每行的累计最小值(cumulative minimum)
DataFrame.cumprod([axis, skipna])用于计算 DataFrame 中每列或每行的累计乘积(cumulative product)
DataFrame.cumsum([axis, skipna])用于计算 DataFrame 中每列或每行的累计和(cumulative sum)
DataFrame.describe([percentiles, include, …])用于快速生成数据集的统计摘要(summary statistics)
DataFrame.diff([periods, axis])用于计算 DataFrame 中相邻行或列之间的差值(差分)
DataFrame.eval(expr, *[, inplace])用于在 DataFrame 上下文中高效地执行字符串形式的表达式运算
DataFrame.kurt([axis, skipna, numeric_only])用于计算 DataFrame 中每列或每行的峰度(Kurtosis)
DataFrame.kurtosis([axis, skipna, numeric_only])用于计算 DataFrame 中每列或每行的峰度(Kurtosis)
DataFrame.max([axis, skipna, numeric_only])用于计算 DataFrame 中每列或每行的最大值(maximum)
DataFrame.mean([axis, skipna, numeric_only])用于计算 DataFrame 中每列或每行的平均值(mean)
DataFrame.median([axis, skipna, numeric_only])用于计算 DataFrame 中每列或每行的中位数(median)
DataFrame.min([axis, skipna, numeric_only])用于计算 DataFrame 中每列或每行的最小值(minimum)
DataFrame.mode([axis, numeric_only, dropna])用于查找 众数(出现频率最高的值) 的方法
DataFrame.pct_change([periods, fill_method, …])用于计算 百分比变化 的方法
DataFrame.prod([axis, skipna, numeric_only, …])用于计算 每列或每行元素的乘积 的方法
DataFrame.product([axis, skipna, …])用于计算 DataFrame 中每列或每行所有元素的乘积
DataFrame.quantile([q, axis, numeric_only, …])用于计算 分位数(Quantiles) 的方法
DataFrame.rank([axis, method, numeric_only, …])用于计算 DataFrame 中每列或每行元素的排名(rank)
DataFrame.round([decimals])用于对 DataFrame 中的数值进行四舍五入
DataFrame.sem([axis, skipna, ddof, numeric_only])用于计算 标准误(Standard Error of the Mean, SEM),即样本均值的标准差
DataFrame.skew([axis, skipna, numeric_only])用于计算 DataFrame 中每列或每行的偏度(Skewness)
DataFrame.sum([axis, skipna, numeric_only, …])用于计算 DataFrame 中每列或每行所有元素的总和

pandas.DataFrame.sum()

pandas.DataFrame.sum() 方法用于计算 DataFrame 中每列或每行所有元素的总和。它是数据分析中最常用的方法之一,常用于统计汇总、特征工程、数据聚合等场景。


📌 方法签名:
DataFrame.sum(axis=0, skipna=True, numeric_only=False, min_count=0, **kwargs)

🧾 参数说明:
参数类型默认值描述
axis{0/‘index’, 1/‘columns’}0
  • 0:按列计算总和(默认)
  • 1:按行计算总和 |
    | skipna | bool | True | 是否跳过 NaN 值。若为 False,含 NaN 的列/行结果也为 NaN。 |
    | numeric_only | bool | False | 是否只考虑数值类型列(int、float),忽略布尔、字符串等非数值列 |
    | min_count | int | 0 | 需要参与运算的最小非空值数量。如果非空值数量小于该值,则结果为 NaN |
    | **kwargs | dict | 无 | 其他可选参数 |

📊 返回值
  • 返回一个 Series,表示每列(或每行)所有元素的总和。
  • 如果某列/行中没有足够多的非空值(由 min_count 控制),则对应位置的结果为 NaN
  • 非数值列会被自动忽略(除非设置 numeric_only=False 且列可以相加,如字符串拼接)。

✅ 示例及结果
示例数据:
import pandas as pd
import numpy as npdf = pd.DataFrame({'A': [1, 2, 3],'B': [10, 20, 30],'C': [100, 200, 300],'D': ['a', 'b', 'c']
})

输出原始数据:

   A   B    C  D
0  1  10  100  a
1  2  20  200  b
2  3  30  300  c

示例 1:默认参数(按列求和)
df.sum()

结果:

A      6
B     60
C    600
D      abc
dtype: object

解释:

  • 数值列正常求和
  • 字符串列 'D' 被拼接成 'abc'(因为 numeric_only=False

示例 2:设置 numeric_only=True(仅数值列)
df.sum(numeric_only=True)

结果:

A      6
B     60
C    600
dtype: int64

解释:

  • 忽略字符串列 'D',只对数值列求和

示例 3:按行求和(axis=1
df['E'] = df[['A', 'B', 'C']].sum(axis=1)  # 新增一列 E 表示每行的数值总和

结果:

   A   B    C  D    E
0  1  10  100  a  111
1  2  20  200  b  222
2  3  30  300  c  333

解释:

  • 每行数值列相加得到新列 E

示例 4:包含 NaN 值时的行为
df_with_nan = pd.DataFrame({'X': [1, 2, np.nan],'Y': [np.nan, 10, 20]
})df_with_nan.sum()

结果:

X     3.0
Y    30.0
dtype: float64

解释:

  • 默认 skipna=True,NaN 被跳过
  • 若设置 skipna=False,则结果为 NaN

示例 5:使用 min_count 参数控制最少非空值数量
df_with_nan.sum(min_count=2)

结果:

X     NaN
Y    30.0
dtype: float64

解释:

  • 列 X 只有 2 个非空值,但 min_count=2 → 正常求和
  • 列 Y 有 2 个非空值 → 正常求和

示例 6:字符串列拼接行为
df[['D']].sum()

结果:

D    abc
dtype: object

解释:

  • 字符串列默认会进行拼接操作(类似 'a' + 'b' + 'c'

⚠️ 注意事项
  • 支持数值列、布尔列、字符串列(拼接)
  • 使用 numeric_only=True 可避免报错并仅处理数值列
  • NaN 值默认被跳过(可通过 skipna=False 控制)
  • min_count 控制是否允许少量非空值参与计算
  • 不会影响原始 DataFrame,返回新 Series

🎯 适用场景
场景描述
数据汇总对多个数值列进行快速求和
特征工程构造新特征,如“历史累计总和”
缺失值分析结合 min_count 分析缺失情况
字符串拼接快速合并文本列内容

📋 总结
特性描述
功能计算 DataFrame 每列或每行的总和
默认行为按列计算,跳过 NaN,处理所有列
是否修改原数据否,返回新 Series
适用类型数值型列(int、float)、字符串列(可选)
输出类型Series,索引为列名(axis=0)或行索引(axis=1

sum() 是一个非常基础但重要的方法,适合用于快速获取数据总量、特征构造、数据质量检查等任务。

相关文章:

  • C++笔记-封装红黑树实现set和map
  • Spring Boot微服务架构(二):开发调试常见中文问题
  • 力扣HOT100之图论:994. 腐烂的橘子
  • 为什么抗干扰天线不能做RTK差分(三)“既要又要”的抗干扰天线
  • 冒泡排序:轻松理解与实现
  • VSCode 插件 GitLens 破解方法
  • 中文域名25周年,取得哪些里程碑式的进展?
  • 百度飞桨PaddleOCR 3.0开源发布 OCR精度跃升13%
  • word为章节标题添加自动编号
  • 一个C#跨平台的机器视觉和机器学习的开源库
  • Pandas:数据分析中的缺失值检测、加载、设置、可视化与处理
  • 《精灵宝可梦特别篇》漫画集 4部合集共76卷,PDF格式分享
  • python 实现一个完整的基于Python的多视角三维重建系统,包含特征提取与匹配、相机位姿估计、三维重建、优化和可视化等功能
  • 【心海资源】黄金首饰价格查询单页源码
  • HarmonyOS 鸿蒙应用开发基础:转换整个PDF文档为图片功能
  • epub→pdf | which 在线转换??好用!!
  • 医学人工智能中的分层处理与跨模态融合:深度架构设计研究(基础教程.上)
  • echarts实现项目进度甘特图
  • 【ubuntu】安装NVIDIA Container Toolkit
  • 电脑无法识别打印机usb设备怎么办 一键解决!
  • 做网站维护前景/现在做推广的新渠道有哪些
  • 上海网站建设做物流一/官方网站怎么注册
  • 网站个人简介怎么做/站长工具海角
  • 企业做app好还是网站好/seo研究协会
  • ckplayer 视频网站/百度登录页
  • 太原网站科技公司/网站设计制作哪家好