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

Python Jupyter中直方图绘制卡顿加载失败问题求助

解决Pandas绘制直方图时Jupyter内核冻结的问题

遇到这种小数据集反而卡住的情况,大概率是数据本身或者环境配置的小问题,我给你梳理几个排查和解决的方向:

1. 先排查Storage列的数据异常

小数据集卡住往往不是因为数据量,而是数据里藏着异常值、非数值内容或者缺失值,先做个基础检查:

# 查看列的数据类型
print(data['Storage'].dtype)
# 检查是否存在非数值的条目(如果类型是object)
print(data['Storage'].apply(type).unique())
# 看描述统计,有没有离谱的极端值
print(data['Storage'].describe())
# 统计缺失值数量
print(data['Storage'].isna().sum())

如果发现有非数值数据,先做清洗再尝试绘图:

# 转换为数值型,无法转换的标记为缺失值
data['Storage'] = pd.to_numeric(data['Storage'], errors='coerce')
# 移除缺失值行
data_clean = data.dropna(subset=['Storage'])
# 重新绘图
plt.hist(data_clean['Storage'])
plt.ylabel('No of times')
plt.show()

2. 调整Matplotlib的环境配置

你同时用了%pylab inline和%matplotlib inline,两者可能有冲突,而且有时候Jupyter的交互式渲染会出问题。试试:

  • 重启Jupyter内核,只保留%matplotlib inline这一行,删掉%pylab inline
  • 或者切换到非交互式后端,先保存图片再查看:
matplotlib.use('Agg')
plt.hist(data['Storage'].dropna())
plt.ylabel('No of times')
plt.savefig('storage_hist.png')

如果图片能正常保存,说明是交互式渲染的问题,后续只用%matplotlib inline即可。

3. 试试Pandas自带的直方图方法

Pandas封装的绘图方法有时候比直接调用Matplotlib更适配DataFrame,稳定性更好:

data['Storage'].dropna().plot.hist(bins=20)
plt.ylabel('No of times')
plt.show()

4. 过滤极端值再尝试

如果描述统计里发现有极大值,直方图会被迫生成超多区间,导致计算卡住。可以先过滤掉极端值:

# 保留99%分位数以内的数据,根据实际情况调整
q99 = data['Storage'].quantile(0.99)
data_filtered = data[data['Storage'] <= q99]
plt.hist(data_filtered['Storage'])
plt.ylabel('No of times')
plt.show()

5. 重启内核释放资源

有时候Jupyter内核运行久了会残留内存占用,哪怕小数据也会卡住。直接点击Kernel -> Restart,然后重新运行必要的代码(只导入需要的库,不要冗余代码)。

你可以从第一步开始排查,应该很快能找到问题所在~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 10:02:51