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

如何用Pandas基于公式通过上一行值计算当前行剩余量

解决方案

你可以直接通过计算Received与Issued差值的累计和来得到Remaining列,这正好匹配你要求的递推逻辑:

import pandas as pd

# 构造原始DataFrame(替换成你自己的数据集即可)
data = {
    'Received': [5, 10, 0, 0, 20, 0, 25, 30],
    'Issued': [0, 0, 1, 2, 0, 3, 0, 4]
}
df = pd.DataFrame(data)

# 生成Remaining列
df['Remaining'] = (df['Received'] - df['Issued']).cumsum()

print(df)

运行后得到的结果完全符合你的目标DataFrame:

ReceivedIssuedRemaining
505
10015
0114
0212
20032
0329
25054
30480

原理说明:你要求的remaining = previous(remaining) + received - issued本质就是从第一行开始,将每行的received - issued依次累加,pandas的cumsum()方法正好实现这个累计求和逻辑,不需要用shift或复杂条件判断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 20:46:05