PANDAS 分位数根据我们的提问方式给出不同的答案

两天前的新问题。


当您拥有大量数据时,PANDAS 可以让您在生成统计数据的同时就地过滤内容,因此您不必为所有内容创建新的数据框。现在,我怀疑这样做有细微差别,因为以两种不同的方式做事 - 一种是“智能”方式,一种是“明确”方式,给了我非常不同的答案,一种显然是正确的(明确的),一个显然是错误的(聪明的方式)。


有人可以指出我所缺少的方向。


这是细节。


我有 250 万行数据,描述了一系列不同设备类型的故障时间。其中两个的描述性统计数据如下。(请注意,这些实际上是采矿设备,但我必须清理一些东西,所以我已经替换了名称)。


                                   Count        Min        Mean          Max

CC_CauseLocationEquipmentType                                           

Coffee Machines                    204136  0.000556   71.797146  23407.41667

Blenders                            52424  0.008333  750.880591  23077.79167

如果我尝试获取设备故障时间的分位数,使用


print(df2.groupby("CC_CauseLocationEquipmentType").quantile([.1, .25, .5, .75,0.9,0.95,0.99,0.99999]))


然后我看到以下分位数。


MMTTMM
浏览 86回答 2
2回答

沧海一幻觉

很有意思。至少在我的 Pandas (0.25.1) 版本中显然存在一个 bug df.groupby(...).quantile(<array-like>)。该代码路径是不同的,甚至在非常简单的例子中似乎也被打破了,比如:df = pd.DataFrame(&nbsp; &nbsp; {"A": [0., 0., 0.], "B": ["X", "Y", "Z"]})result = df.groupby("B").quantile([0.5, 0.9])虽然它适用于 2 元素版本:df = pd.DataFrame(&nbsp; &nbsp; {"A": [0., 0.], "B": ["X", "Y"]})result = df.groupby("B").quantile([0.5, 0.9])我会避免在类似数组的对象上使用 groupby 和分位数,直到代码被修复,即使在它现在可以工作的情况下也是如此,因为它很可能容易出错。Blame 还显示了很多相当新鲜的更新(10 个月、16 个月)也正是处理这些代码片段。

慕妹3242003

您在两个示例中都看不到分位数在起作用。只有零,每个组只有一个元素,所以结果总是零。还是我在这里错了?我有 pandas 0.25.3 并获得有用的结果import pandas as pddf = pd.DataFrame(&nbsp; &nbsp; {"A": [1., 2., 3., 4., 5., 6.], "B": ["X", "X", "Y", "Y", "Z", "Z"]})result = df.groupby("B").quantile([0.5, 0.9])print(result)输出:&nbsp; &nbsp; &nbsp; &nbsp; AB&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;X 0.5&nbsp; 1.5&nbsp; 0.9&nbsp; 1.9Y 0.5&nbsp; 3.5&nbsp; 0.9&nbsp; 3.9Z 0.5&nbsp; 5.5&nbsp; 0.9&nbsp; 5.9如果它适用于传递给你的单个数字,quantiles()你可以破解类似q = [0.2, 0.5, 0.9]res = [df.groupby("B").quantile(_).loc['X', 'A'] for _ in q]df_q = pd.DataFrame({'A':res, 'quantiles':q})print(df_q)输出:&nbsp; &nbsp; &nbsp;A&nbsp; quantiles0&nbsp; 1.2&nbsp; &nbsp; &nbsp; &nbsp; 0.21&nbsp; 1.5&nbsp; &nbsp; &nbsp; &nbsp; 0.52&nbsp; 1.9&nbsp; &nbsp; &nbsp; &nbsp; 0.9直到它被修复。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python