You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas中为DataFrame添加计算余额值的新列

给Pandas DataFrame添加累计余额列的解决方案

嘿,我来帮你搞定这个需求!咱们先明确一下目标:现有一个包含first和second列的DataFrame,需要新增third列记录累计余额,规则是初始余额为0,每一行的余额 = 上一行余额 - 当前行first值 + 当前行second值。

先看一下初始的DataFrame代码和内容:

import pandas as pd

data={'first':[5,4,3,2,3], 'second':[1,2,3,4,5]}
df = pd.DataFrame(data)

对应的表格:

firstsecond
51
42
33
24
35

高效实现方法

别用循环逐行算(大数据量下循环慢到离谱),咱们用Pandas的向量化操作+cumsum()函数就能快速搞定:

# 先计算每行的余额变动值:-first + second,再对变动值做累计求和得到余额
df['third'] = (-df['first'] + df['second']).cumsum()

运行完这段代码,你的DataFrame就会变成期望的样子:

firstsecondthird
51-4
42-6
33-6
24-4
35-2

原理说明

这个方法的逻辑其实很直观:

  • 每一行对余额的影响是-first + second,也就是余额的变动量
  • cumsum()会从第一行开始把这些变动量依次累加,初始累加值为0,正好对应我们的初始余额
  • 比如第一行累加结果是-5+1=-4,就是初始0加上这个变动量;第二行是-4 + (-4+2) = -6,也就是上一行余额加上当前变动量,完全符合需求

这种向量化操作比循环高效太多,尤其是当你的DataFrame有几万甚至几十万行的时候,优势会非常明显。

内容的提问来源于stack exchange,提问作者Bashar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 14:49:07