【问题标题】:Nth percentile in python is different from Dynatrace resultpython中的第N个百分位数与Dynatrace结果不同
【发布时间】:2021-09-28 18:11:12
【问题描述】:

我正在尝试根据从 Dynatrace 中提取的数据创建报告。

我每天都在为事件提取数据,在我的 Python Django 报告中,我需要显示第 N 个百分位数数据(例如 30 个百分位数,60 th Percentile,75th Percentile,90th Percentile)。

当我尝试从 Dynatrace 中提取数据时,结果如下: [1563,2731,3586,3966,4174,4971,6055,9175,15667]

对于这个列表,当我使用 numpy.percentile 或 df.quantile 时,我得到一个类似于我在 Excel 中使用的公式的百分位值的值 但是 Dynatrace PERCENTILE 函数一起显示不同的值

例如,从 excel 和 Python 中,我得到第 75 个百分位数 - 6055 从 Dynatrace 我得到 - 6835

我尝试使用一些在线工具来计算百分位数,但似乎都给出了 6055。 如果有人能解释一下 DynaTrace 是如何计算这个公式的,那将是一个很大的帮助

提前致谢

【问题讨论】:

    标签: python excel numpy percentile dynatrace


    【解决方案1】:

    这种差异通常是由于interpolation method,当样本非常小时非常明显。

    但是,6055 在您的样本中恰好是百分位数 75:

    1563   2731   3586   3966   4174   4971   6055   9175  15667
     0/8    1/8    2/8    3/8    4/8    5/8    6/8    7/8    8/8
       0  0.125   0.25  0.375    0.5  0.625   0.75  0.875      1
    

    因此,Numpy 使用其任何interpolation methods(线性、较低、较高、最近、中点)产生相同的结果。

    Dynatrace 可能正在使用更复杂的插值方法,例如 this one。其中一位作者隶属于 Dynatrace。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-28
      • 2019-06-02
      • 2011-08-22
      • 2011-03-05
      • 2022-07-29
      • 1970-01-01
      • 2020-04-17
      • 2020-07-16
      相关资源
      最近更新 更多