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

Jupyter Notebook中多DataFrame调用异常问题求助

问题排查与解决步骤
  • 检查单元格执行顺序
    Jupyter Notebook的变量是按单元格实际执行顺序保存的,不是代码的物理排列顺序。你可以看每个单元格左侧的执行编号:如果创建df、df2的单元格没执行(编号为空),或者执行编号比后续修改变量的单元格小(比如先跑了创建df3的单元格,再跑前面的),那这两个变量就不会存在于当前环境。
    解决:从最顶部加载CSV的单元格开始,按顺序重新执行所有相关单元格,确保每个单元格都有连续的执行编号。

  • 排查变量覆盖或删除操作
    翻找后续代码,看看有没有不小心写了del df、del df2,或者把df/df2重新赋值成了其他内容(比如df = 10、df = some_other_df)。哪怕是在某个单元格里误写了这类代码,都会直接销毁原变量。
    解决:找到这类代码删掉,然后重新执行创建df、df2的单元格恢复变量。

  • 检查作用域是否受限
    如果创建df、df2的代码是放在自定义函数里的(比如def load_data(): df = pd.read_csv(...)),那函数内部的变量是局部变量,函数执行完就会被回收,只有全局作用域的变量能被%who_ls查到。而df3可能是在函数外创建的,所以能保留。
    解决:要么在函数里加global df、global df2声明变量为全局变量;要么让函数返回数据,再赋值到全局变量(比如df = load_data())。

  • 确认.copy()的赋值逻辑
    虽然你用了.copy(),但如果子集化时没正确赋值给df2,比如只写了df[some_condition]而没写df2 = df[some_condition].copy(),那df2不会被创建,但这不会导致df消失。还是确认下代码写法:

    import pandas as pd
    # 正确的创建流程示例
    df = pd.read_csv("your_file.csv")
    df2 = df[df['target_column'] > 5].copy()  # 必须显式赋值给df2
    df3 = df2.copy()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 11:48:12