我有这样一个pandas数据帧:
+-----+----------+
| No | quantity |
+-----+----------+
| 1 | 100.0 |
| 2 | 102.3 |
| 3 | 301.2 |
| 4 | 100.6 |
| 5 | 120.9 |
| ... | ... |
+-----+----------+
我如何计算每个值在数据集中的概率(在数据帧中,除了第3个数据帧之外,其他的都是这样)。这个想法是使用标准正态分布,计算一个值(或更极端的)发生的概率。在这种情况下,3号发生的概率几乎为零,因为它与所有其他值相差甚远。在
我知道如何在纸上对每个值执行此操作:
计算z分数
在标准正态概率表中找到相应的值
如果值低于分布的平均值,则概率为1-概率
所以期望的输出是这样的:
^{pr2}$如何在python中实现这一点?在
谢谢:)
找到我的错误,这是我问题的答案:
输出为:
^{pr2}$关于您的解决方案的一些意见:如果您已经在使用scipy,那么您可以使用scipy.stats.mstats.zscore而不是编写自己的zscore计算,并且不需要导入numpy来计算pandas系列的平均值:
您还可以使用apply避免在数据帧上进行迭代:
^{pr2}$相关问题 更多 >
编程相关推荐