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

Pandas DataFrame Int64列绘制直方图卡顿及显示异常求助

解决int类型列直方图异常的问题

核心解决方案:手动指定分箱数(bins参数)

不管用matplotlib.pyplot.hist还是df.hist,显式设置合理的分箱数量就能解决单位高度柱子和绘图缓慢的问题:

matplotlib写法:

import matplotlib.pyplot as plt
import pandas as pd

plt.hist(df['int_col'], bins=20)  # 20为示例值,可根据数据范围调整
plt.show()

pandas内置hist写法:

df.hist(column='int_col', bins=20)

问题根源

你看到的单位高度多颜色柱子,本质是matplotlib/pandas默认分箱策略把每个唯一int值单独设为一个分箱。如果int列中多数值都是唯一的(比如1000行里有数百个不同值),每个分箱仅包含1条数据,因此柱子高度均为1。同时pandas的hist默认给每个分箱分配不同颜色,就出现了多颜色柱子的情况。

绘图耗时久也是因为分箱数量过多,程序需要处理大量分箱的计算与渲染,导致效率低下。

Nullable Int(Int64,大写I)类型的额外处理

你提到Nullable Int类型问题更严重,是因为该类型允许存储NaN,内部逻辑与普通int64不同。除了转float,还可以先剔除缺失值再绘图:

plt.hist(df['Int64_col'].dropna(), bins=20)

可选:先排查数据分布

如果不确定分箱数设置多少合适,可以先查看数据的范围与唯一值数量:

print(df['int_col'].describe())  # 查看min、max、均值等统计信息
print(df['int_col'].nunique())  # 查看唯一值数量

比如数据范围在0-100时,设10个分箱就很合理;范围在0-1000时,设20或50个分箱均可。

内容的提问来源于stack exchange,提问作者Mark C.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 16:40:26