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

运行实验时结果不同但CSV文件内容重复的问题咨询

问题原因分析
  • rows 变量未正确更新:这是最常见的核心问题——每次实验生成的新结果根本没同步到rows里。比如rows被初始化后就没再修改,或者实验逻辑里把新数据追加/替换到rows的代码写错了,导致每次都是用旧数据生成DataFrame。
  • 缓存机制干扰:如果实验代码里用了缓存(比如@lru_cache装饰器、第三方缓存库),或者某些计算步骤被系统/框架缓存,会导致每次运行都直接取旧结果,而非重新计算。
  • 数据生成流程断裂:从实验计算的源头到rows的传递环节出问题,比如计算成本的函数返回了新值,但没正确赋值给rows,或者rows被意外重置为初始状态。
  • 文件写入异常未被捕获:虽然改文件名也有问题,但如果目标目录无写入权限,或者写入过程中抛出异常但被忽略,可能导致实际没写入新数据,你看到的还是之前残留的文件(不过你已经删过文件,这个概率较低)。
实验前必查事项
  • 先验证rows的内容:在生成DataFrame的代码前加print(rows),确认每次运行时rows的内容是新的实验结果,而不是重复旧数据。如果打印出来还是旧值,直接排查rows的更新逻辑。
  • 临时禁用缓存:如果代码里有缓存相关的代码(比如装饰器),先注释掉再运行,看结果是否更新。
  • 检查数据传递链路:从实验计算的第一步开始,逐步打印中间结果,确认每一步都生成了新值,并且正确传递到rows变量中。
  • 改用显式文件流写入:替换现有的to_csv写法,用with open确保数据完全落盘,避免缓冲问题:
    with open('./data/cost_results.csv', 'w', newline='') as f:
        df.to_csv(f, index=False)
    
  • 捕获写入异常:在写入代码周围加try-except,确认是否有写入失败的情况:
    try:
        df.to_csv('./data/cost_results.csv', index=False)
        print("文件写入成功")
    except Exception as e:
        print(f"写入失败: {e}")
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 03:05:04