python - 为什么pandas的概率密度值太大
问题描述
我正在使用熊猫来绘制概率密度,我的数据描述如下:
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,但所有 bin 的面积应该为 1。
正如您在文档中所读到的:
密度:布尔值,可选
如果为 True,则返回元组的第一个元素将是归一化以形成概率密度的计数,即直方图下的面积(或积分)总和为 1。这是通过将计数除以观察次数来实现的bin 宽度,而不是除以观察总数。如果stacked 也是True,则直方图的总和归一化为1。
1 bin 的面积(显然)是频率乘以 bin 宽度。由于您有 1000 个垃圾箱和一系列[0,59.2]
. 您的 bin 宽度为0.0592
,因此每个 bin 的区域非常小,因此将所有 1000 个“小”区域相加得出曲线下的面积为 1。
你可以用np.histogram
.
推荐阅读
- python - pandas 窗口函数中是否有 FIRST_VALUE 的模拟?
- excel - 宏有效但太慢
- google-cloud-platform - Google Cloud Composer:关于语言和工作流程的问题
- android - Android Studio canary 必须要尝试 Jetpack Compose?
- c# - 限制 .ics 文件转发
- python - 从 VSCode JupyterNotebooks 中的全局撤消更改回本地撤消
- mongodb - MongoDB:跨文档列表中的项目不同
- html - Angular/Html - 如何使整个单元格可点击?
- java - Quarkus Panache Mongodb 可能的查询
- gridview - Yii2 在 Accordion Widget 中显示动态 GridView