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

pandas强制重置索引失效:DataFrame索引从9开始无法归0如何解决

索引异常问题修复方案

问题根因

  • 打印操作执行顺序错误:你是先打印df、后调用reset_index重置索引,打印时dropna操作已经删除了前9行数据,仅剩下索引为9的最后一行,所以打印出来索引从9开始。
  • 函数返回值错误:reset_index设置inplace=True时会直接修改原df,返回值为None,你当前直接返回该调用结果会导致函数返回空值,而非处理好的DataFrame。
  • 额外数据错误:构造数据字典时low字段错误赋值为close_lst,会导致low列和close列数据完全一致。

修复代码

调整操作顺序、修正字段赋值和返回逻辑即可,修复后代码如下:

import time
import random
import datetime
import pandas as pd
from colored import colored

# 示例K线生成代码
candles = [ [time.time()*1000 , random.randint(1000 ,9999) , random.randint(1000 ,9999) ,random.randint(1000 ,9999),random.randint(1000 ,9999),random.randint(1000 ,9999) ] for i in range(10) ] 

def handler(candles):
    date_time, open_lst , high_lst , low_lst , close_lst , volume_lst = [],[],[],[],[],[]

    for item in candles:
        dt = datetime.fromtimestamp(float(item[0])/1000)
        date_time.append(dt)
        open_lst.append(float(item[1]))
        high_lst.append(float(item[2]))
        low_lst.append(float(item[3]))
        close_lst.append(float(item[4]))
        volume_lst.append(float(item[5]))

    # 修正low字段赋值错误
    coin_data_frame = {
        'dt': date_time,
        'open': open_lst,
        'high': high_lst,
        'low': low_lst,
        'close': close_lst,
        'volume': volume_lst }

    df = pd.DataFrame(coin_data_frame , columns= ['dt','open','high','low', 'close', 'volume'] )

    rolling_mean = df['close'].rolling(window=5, min_periods=5 ).mean()
    rolling_mean2 = df['close'].rolling(window=10, min_periods=10 ).mean()
    df['5_sma'] = rolling_mean
    df['10_sma'] = rolling_mean2
    # 合并两次dropna操作
    df.dropna(subset = ["5_sma", "10_sma"], inplace=True)
    
    # 重置索引操作移到打印之前
    df.reset_index(drop=True, inplace=True)
    
    print(colored.yellow(str(df)))
    
    # 直接返回处理完成的df
    return df

# 测试调用
handler(candles)

补充说明

如果不习惯用inplace参数,也可以将重置索引的代码替换为df = df.reset_index(drop=True),效果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 11:45:02