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

DataFrame行索引生成问题:按规则递增至10000行时第6项异常

解决索引序列生成问题

你的索引序列规律是:从3开始,连续加8三次得到11、19、27,之后加11得到38,再重复连续加8三次得到46、54、62,接着加11得到73,以此循环直到索引不超过10000。

原代码的问题

你当前的代码逻辑错误在于:用固定步长8的range生成i,而非基于上一个索引的值进行累加。这导致当需要加11时,后续的i没有和上一个正确索引对齐,最终计算出的结果偏离预期。比如第6个元素,原代码会算出43,而正确值应该是38+8=46。

正确实现代码

基于“连续加8三次→加11→重复”的规律,直接从上一个索引值出发累加,代码如下:

df_length = 10000
index_list = [3]
current_index = 3
# 记录连续加8的次数,初始已存在第一个元素,后续需完成3次加8后切换为加11
add_8_counter = 0

while True:
    if add_8_counter < 3:
        # 连续加8,直到完成3次
        current_index += 8
        add_8_counter += 1
    else:
        # 完成3次加8后,加11并重置计数器
        current_index += 11
        add_8_counter = 0
    
    # 索引超过DataFrame长度则停止
    if current_index >= df_length:
        break
    index_list.append(current_index)

验证结果

生成的序列前几项为:[3, 11, 19, 27, 38, 46, 54, 62, 73, ...],完全符合你预期的规律,且会自动停止在不超过10000的最大索引处。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 10:27:39