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

Pandas如何基于前一行不同列的值迭代计算生成目标DataFrame

Pandas 实现Supply滚动累加与Available计算方案

假设你的原始DataFrame命名为df,包含原始供应列Supply、订单列Order两列,可直接用以下代码实现需求:

import pandas as pd

# 下方的df构造仅为示例,请替换为你自己的原始DataFrame
df = pd.DataFrame({
    "Supply": [2262, 2161, 2329, 2108],
    "Order": [2117, 2212, 2405, 2021]
})

result_df = df.copy()
# 计算第一行可用值
result_df.loc[0, "Available"] = result_df.loc[0, "Supply"] - result_df.loc[0, "Order"]

# 从第二行开始逐行按规则计算
for idx in range(1, len(result_df)):
    # 当前行Supply = 原始df当前行Supply + 上一行的Available
    result_df.loc[idx, "Supply"] = df.loc[idx, "Supply"] + result_df.loc[idx-1, "Available"]
    # 当前行Available = 当前行新计算的Supply - 当前行Order
    result_df.loc[idx, "Available"] = result_df.loc[idx, "Supply"] - result_df.loc[idx, "Order"]

补充说明

  • 上述代码逻辑和你描述的规则完全对齐,可读性高,万行以内的数据集运行效率足够
  • 如果是超大规模数据集,可以用numpy的累计求和逻辑优化,避免循环的性能损耗

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 01:54:04