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

Jupyter运行数据分析已定义df仍报NameError变量未定义问题求助

引发原因

  • Jupyter Notebook 的单元格执行顺序和代码书写顺序无强制绑定,绝大多数情况是你未先运行定义df的单元格,就直接执行了调用df.dropna()的代码。从报错的输入标识<ipython-input-3-b46efd5c722d>可以判断,调用df的单元格是你内核启动后第3个运行的单元格,如果定义df的单元格输入编号大于3,就可以确认是执行顺序错配导致的问题。
  • Jupyter的变量作用域完全和内核生命周期绑定,如果定义df后你重启过内核,所有之前的变量都会被清空,哪怕之前的单元格显示过运行成功的结果,df也会变成未定义状态。
  • 小概率场景:定义df的单元格运行时本身就有报错,比如未提前导入pandas/numpy、dowjones.csv文件路径错误导致pd.read_csv执行失败,df没有被成功创建,也会触发该报错。
  • 还有一种可能是你在定义df之后,中途运行过del df这类删除变量的代码,主动清除了df变量。

解决方法

  • 首先确认你已经提前导入所有依赖库,把以下代码放在最开头的单元格,优先运行:
import pandas as pd
import numpy as np
import statsmodels.formula.api as smf
  • 严格按代码书写顺序执行单元格:先运行定义df的第一个单元格,确认df.head()正常输出无报错后,再运行后续调用df的第二个单元格。
  • 如果之前重启过内核,直接点击Jupyter顶部菜单栏的「运行所有单元格(Run All)」,让所有代码按书写顺序完整执行一遍即可。
  • 如果要避免后续再出现执行顺序混乱的问题,可以在需要依赖前置变量的单元格开头增加校验逻辑:
if 'df' not in dir():
    raise Exception("请先运行定义df的前置单元格")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 18:54:05