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

DataFrame子集修改值同步影响原表问题排查求助

问题解决:修改DataFrame子集时避免影响原数据

问题原因

你遇到的问题核心是:Pandas中用iloc切片得到的df_orig是原DataFrame的视图,而非独立副本。修改视图的内容会直接同步到原DataFrame里,导致后续循环切片时,会重复读取到已经被改成NaN的值。

解决方案

在截取子集时,通过.copy()方法显式创建原数据的独立副本,这样修改子集就不会影响原DataFrame了。

修改后的代码如下:

import pandas as pd
import numpy as np

df = pd.read_csv('df.csv')
for j in range(num):
    start_time = j
    end_time = train_candles + j
    # 显式创建副本,断开与原df的关联
    df_orig = df.iloc[start_time:end_time, :].copy()
    df_orig.iloc[-1, df_orig.columns.get_loc('last')] = np.nan

补充说明

  • .copy()默认是深拷贝,会完整复制数据和索引结构,确保子集完全独立于原数据。
  • 如果你的数据没有嵌套结构,也可以用.copy(deep=False)做浅拷贝,但一般推荐默认的深拷贝,避免潜在的关联问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 18:51:01