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

Python中如何将每次for循环计数器值赋值给DataFrame列

问题原因

你当前的写法在每次循环时,都会把column_name整列的所有值统一覆盖为当前遍历到的x值,循环全部执行完后,该列所有行都会被赋值为列表最后一个元素89,无法实现逐行匹配赋值的预期。

正确实现方案
  • 方案1:直接整列赋值(优先推荐,性能远高于循环写法)
    如果你的DataFrame行数和mylist长度完全一致,不需要写for循环,pandas原生支持直接将列表赋值给指定列:
mylist = [6,29,59,89]
# 赋值前请确认len(df) == len(mylist),避免长度不匹配报错
df['column_name'] = mylist
  • 方案2:逐行索引赋值(适合循环内还有其他处理逻辑的场景)
    如果必须在for循环中完成赋值,不要整列覆盖,要通过行索引定位到具体单元格赋值:
mylist = [6,29,59,89]
# 同时遍历索引和对应的值
for idx, x in enumerate(mylist):
    # 此处可添加循环内需要执行的其他业务逻辑
    df.loc[idx, 'column_name'] = x

注意:如果你的DataFrame设置过非默认的连续整数索引,不要直接用enumerate生成的序号,要绑定DataFrame自身的索引遍历,避免赋值错位:

for idx, x in zip(df.index, mylist):
    df.loc[idx, 'column_name'] = x

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 06:51:22