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

Python如何用for循环计算Pandas DataFrame指定年份剩余单位数量

问题原因

原有代码存在两个核心错误:

  1. 循环变量i为年份字符串格式(如"1976"),无法直接通过i-1运算获取上一年对应列
  2. 未处理年份列中的NaN值:无扣除量的行当年应直接继承上一年剩余量,无需做减法运算

修复后的代码(保留for循环逻辑)

import pandas as pd

# 提取所有年份列,转成整数后排序
year_list = df.columns[2:].astype(int).tolist()
# 单独提取扣除量表,填充NaN为0避免运算错误,不修改原数据
deduct_data = df[df.columns[2:]].fillna(0)

# 计算首年剩余量 = 初始总量 - 首年扣除量
first_col = str(year_list[0])
df[first_col] = df['Freq'] - deduct_data[first_col]

# 遍历后续年份计算剩余量
for i in range(1, len(year_list)):
    curr_col = str(year_list[i])
    prev_col = str(year_list[i-1])
    df[curr_col] = df[prev_col] - deduct_data[curr_col]

运行后即可得到你期望的输出结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 05:24:03