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

在Jupyter中调用df.mean()触发"Javascript Error: too much recursion"的原因

问题原因与解决方案

问题根源

这个Javascript递归错误是Jupyter Notebook前端渲染层的问题,和Python代码本身无关:

  • 当执行sensors.mean()这类操作后,Notebook会自动尝试在浏览器中渲染返回的结果对象(比如包含51个元素的Series),Firefox的Javascript引擎在处理大对象渲染时触发了递归溢出。
  • 调高Python递归上限不会影响前端的Javascript运行环境,因此无效。

可行解决方案

  • 禁止自动输出结果:在代码末尾加分号,不让Notebook渲染结果对象
    means = sensors.mean(axis=0, skipna=True);  # 末尾加;
    sensors.fillna(sensors.mean(), inplace=True);
    
  • 仅对数值列计算均值:明确指定只处理传感器数值列,排除非数值列(比如machine_status),减少结果对象的复杂度
    numeric_cols = sensors.select_dtypes(include=['float64', 'int64']).columns
    means = sensors[numeric_cols].mean(axis=0, skipna=True);
    sensors[numeric_cols] = sensors[numeric_cols].fillna(means);
    
  • 调整Jupyter显示设置:限制输出的行数和列数,降低前端渲染压力
    import pandas as pd
    pd.set_option('display.max_rows', 10)
    pd.set_option('display.max_columns', 10)
    
  • 更换浏览器或环境:切换到Chrome浏览器,或者使用Jupyter Lab替代传统Jupyter Notebook,前者的前端渲染机制更稳定。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 12:34:50