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

如何在Python中动态更新Pandas DataFrame的循环迭代器?

动态遍历Pandas DataFrame(支持循环中新增行)

问题根源

df.iterrows()是在循环启动前就生成了固定的迭代器,后续对DataFrame新增行的操作不会同步到这个迭代器里,所以你只能遍历到初始的4行,新增的行不会被处理。

简洁解决方案

直接用while循环跟踪当前处理的行索引,利用len(df)的实时更新特性,让新增的行自动纳入迭代范围:

import pandas as pd

df = pd.DataFrame({"A": [1, 2, 3, 4]})
i = 0
current_idx = 0

while current_idx < len(df):
    row = df.iloc[current_idx]
    print(current_idx, row["A"])
    
    # 模拟新增行的逻辑
    if i < 2:
        df.loc[len(df), "A"] = df["A"].max() + 1
    i += 1
    current_idx += 1

输出结果

0 1
1 2
2 3
3 4
4 5
5 6

方案说明

  • 用current_idx记录当前要处理的行位置,每次循环都判断current_idx是否小于DataFrame的实时长度
  • 新增行后len(df)会立即变大,循环会自动继续处理这些新加入的行
  • 不需要额外的标记列(比如你原来方案里的B列),代码更简洁直观

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 21:42:54