当我们描述分组数据框时,25%、50%、75% 值是什么?

问题描述 投票:0回答:6

我正在浏览 pandas groupby 文档,当我在特定列上进行 groupby 时,如下所示:

df:

     A      B         C         D
0  foo    one -0.987674  0.039616
1  bar    one -0.653247 -1.022529
2  foo    two  0.404201  1.308777
3  bar  three  1.620780  0.574377
4  foo    two  1.661942  0.579888
5  bar    two  0.747878  0.463052
6  foo    one  0.070278  0.202564
7  foo  three  0.779684 -0.547192

grouped=df.groupby('A')
grouped.describe(A)

给予

              C                      ...         D                    
          count      mean       std  ...       50%       75%       max
A   B                                ...                              
bar one     1.0  0.224944       NaN  ...  1.107509  1.107509  1.107509
    three   1.0  0.704943       NaN  ...  1.833098  1.833098  1.833098
    two     1.0 -0.091613       NaN  ... -0.549254 -0.549254 -0.549254
foo one     2.0  0.282298  1.554401  ... -0.334058  0.046640  0.427338
    three   1.0  1.688601       NaN  ... -1.457338 -1.457338 -1.457338
    two     2.0  1.206690  0.917140  ... -0.096405  0.039241  0.174888

描述时25%、50%、75%代表什么? 请解释一下吗?

pandas pandas-groupby
6个回答
12
投票

简单来说...

您将看到百分位数(25%、50%、75%..等)和它们前面的一些值。

意义在于告诉你你的数据的分布。

例如:

s = pd.Series([1, 2, 3, 1])

s.describe()   will give

count    4.000000
mean     1.750000
std      0.957427
min      1.000000
25%      1.000000
50%      1.500000
75%      2.250000
max      3.000000

25% 表示 25% 的数据的值为 1.0000 或以下。也就是说,如果你手动查看你的数据,其中 25% 小于或等于 1。(如果你查看我们的数据 [1, 2, 3, 1],你就会同意这一点。[1] 是25% 的数据小于或等于 1。

50% 表示 50% 的数据的值为 1.5 或更低。 [1, 1] 构成 50% 的数据小于或等于 1.5。

75% 表示 75% 的数据的值为 2.25 或更低。 [1, 2, 1] 占 75% 的数据小于或等于 2.25。


10
投票

要解释最小值、25%、50%、75% 和最大值,请想象将每列从最低值到最高值排序。第一个(最小)值是最小值。如果您浏览列表的四分之一,您会发现一个大于值的 25% 且小于值的 75% 的数字。即 25% 的值(发音为“25%”)。第 50 个和第 75 个百分位数的定义类似,max 是最大的数字。


3
投票

您可以测试

DataFrameGroupBy.describe

注释

对于数值数据,结果的索引将包括计数、平均值、标准差、最小值、最大值以及下百分位数、50 分位数和上百分位数。 默认情况下,下百分位数为 25,上百分位数为 75。 第 50 个百分位数与中位数相同。


你能解释一下上面的 foo-one 值吗?

它被称为

Mulitindex

分层/多级索引非常令人兴奋,因为它为一些相当复杂的数据分析和操作打开了大门,特别是对于处理更高维度的数据。从本质上讲,它使您能够在较低维度的数据结构(如 Series (1d) 和 DataFrame (2d))中存储和操作任意数量的维度的数据。

grouped=df.groupby(['A', 'B'])
df = grouped.describe()

print (df.index)
MultiIndex([('bar',   'one'),
            ('bar', 'three'),
            ('bar',   'two'),
            ('foo',   'one'),
            ('foo', 'three'),
            ('foo',   'two')],
           names=['A', 'B'])

print (df.columns)
MultiIndex([('C', 'count'),
            ('C',  'mean'),
            ('C',   'std'),
            ('C',   'min'),
            ('C',   '25%'),
            ('C',   '50%'),
            ('C',   '75%'),
            ('C',   'max'),
            ('D', 'count'),
            ('D',  'mean'),
            ('D',   'std'),
            ('D',   'min'),
            ('D',   '25%'),
            ('D',   '50%'),
            ('D',   '75%'),
            ('D',   'max')],
           )

print (df.loc[('foo','one'), ('C', '75%')])
-0.19421

3
投票

老问题,但添加答案以便人们可以找到帮助:

在我带注释的 Pandas 书籍版本中,我解释了

.describe()
输出中 25%、50% 和 75% 值的重要性,这恰好回答了问题:附:

enter image description here

如果有人需要我的注释版本,我可以分享。


2
投票

您将看到数据框的分位数: https://en.wikipedia.org/wiki/Quantile

例如 25-%-Quantil:

您所有值的 25% 低于该值

您的情况:

A= 条
B=一

75% 分位数为 1.107509,这意味着组中 D 类数据条目(条形和一)的 75% 低于此值。


0
投票

百分位数在统计中用于为您提供一个数字,该数字描述值列表中给定百分比的值低于的值。

© www.soinside.com 2019 - 2024. All rights reserved.