Python 为什么熊猫的概率密度值太大
我用熊猫画概率密度,我的数据描述如下:Python 为什么熊猫的概率密度值太大,python,pandas,matplotlib,Python,Pandas,Matplotlib,我用熊猫画概率密度,我的数据描述如下: count 636149.000000 mean 3.040828 std 3.752975 min 0.000000 25% 0.050000 50% 1.050000 75% 5.050000 max 59.200000 我的代码如下: df['data'].hist(bins=1000,density=1)
count 636149.000000
mean 3.040828
std 3.752975
min 0.000000
25% 0.050000
50% 1.050000
75% 5.050000
max 59.200000
我的代码如下:
df['data'].hist(bins=1000,density=1)
plt.show()
结果如图所示
我想知道为什么我的值已经达到5,并且通常不应该小于1?我应该如何更正它?正如其中一条评论所指出的,值不一定必须在最大值为1,但所有箱子的面积加起来应该是1 正如您在中看到的: 密度:布尔值,可选 如果为True,则返回元组的第一个元素将是归一化的计数,以形成概率密度,即直方图下的面积(或积分)总和为1。这是通过将计数除以观测次数乘以料仓宽度而不是除以观测总数来实现的。如果叠加也为真,则直方图之和将标准化为1 1仓的面积(显然)是频率乘以仓宽。因为您有1000个箱子和
[0,59.2]
的范围。您的储物箱宽度为0.0592
,因此每个储物箱的面积非常小,因此,将所有1000个“小”面积相加,得出曲线下的面积为1
你可以检查一下。数据描述中说只有50%的值小于1,我认为代码值没有错,不一定要小于1,曲线下的总面积必须为1。@MassoudHosseinali谢谢问题很简单:有人想要像df.value\u计数这样的标准化绘图(normalized=True),而此选项仅使用(df.value.hist(bin=n,density=1)无法实现结果,而答案没有说明如何固定density参数以实现预期性能