
在数据分析和处理中,我们经常会遇到需要计算某一列的“运行总和”或“累积和”的场景。这意味着新列的每一行的值是原始列从第一行到当前行的所有值的总和。例如,给定一个包含数值的列a,我们可能需要创建一个新列b,其计算逻辑如下:
| field | A | B (累积和) |
|---|---|---|
| u | 60.0 | 60.0 |
| v | 78.0 | 60.0 + 78.0 = 138.0 |
| w | 42.0 | 138.0 + 42.0 = 180.0 |
| x | 61.0 | 180.0 + 61.0 = 241.0 |
| y | 36.0 | 241.0 + 36.0 = 277.0 |
这种计算在财务分析(如累计收益)、库存管理(如累计销售量)或任何需要追踪序列总和的场景中都非常有用。
Pandas库为这种常见的操作提供了内置且高度优化的cumsum()方法。cumsum()是Series对象的一个方法,可以直接应用于DataFrame的某一列,计算其元素的累积和。
以下是如何使用cumsum()方法来创建上述累积和列的完整示例:
import pandas as pd
# 1. 创建一个示例DataFrame
# 模拟原始数据,包含 'field' 和 'A' 两列
df = pd.DataFrame(
{
"field": ["u", "v", "w", "x", "y"],
"A": [60, 78, 42, 61, 36],
}
)
print("原始DataFrame:")
print(df)
print("-" * 30)
# 2. 使用 cumsum() 方法计算 'A' 列的累积和
# 将计算结果直接赋值给新列 'B'
df["B"] = df["A"].cumsum()
# 3. 打印包含新列的DataFrame
print("添加累积和列 'B' 后的DataFrame:")
print(df)执行上述代码后,你将得到以下输出:
原始DataFrame: field A 0 u 60 1 v 78 2 w 42 3 x 61 4 y 36 ------------------------------ 添加累积和列 'B' 后的DataFrame: field A B 0 u 60 60 1 v 78 138 2 w 42 180 3 x 61 241 4 y 36 277
可以看到,新创建的B列精确地反映了A列的累积和,与我们最初的需求完全一致。
在Pandas中计算DataFrame列的累积和并将其作为新列添加,是一个非常直观且高效的操作,主要通过利用Series对象的cumsum()方法实现。这种方法不仅代码简洁,而且在处理大规模数据时表现出卓越的性能。掌握cumsum()是进行数据预处理和特征工程时的基本技能之一,能够帮助我们轻松实现各种复杂的累积计算需求。
以上就是Pandas教程:高效计算DataFrame列的累积和并创建新列的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号