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

如何修改代码将for循环处理pandas数据的输出保存为目标列表

问题原因
  • 你的代码使用了两层嵌套循环,每遍历一行数据时,内层的三次循环会把当前行的Start_position减1后依次赋值给startpos的所有三个位置,导致前一行的计算结果被后一行的值反复覆盖,所以无法得到预期输出。
方案1:修改现有循环逻辑

直接移除内层循环,用enumerate绑定行序和数组索引即可:

import numpy as np
# 初始化时直接指定int类型,避免输出带小数点的浮点数
startpos = np.zeros(3, dtype=int)
for idx, ind in enumerate(mutate1.index):
    startpos[idx] = mutate1['Start_position'][ind] - 1
print(startpos)

运行后输出:[38512138 38511501 38511376],符合预期。

方案2:更高效的pandas向量化写法

不需要手动写循环,一行代码就能实现,数据量越大效率优势越明显:

# 输出为列表格式
startpos = (mutate1['Start_position'] - 1).tolist()
# 如果需要numpy数组格式,换成以下写法
# startpos = (mutate1['Start_position'] - 1).to_numpy()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 16:15:01