我正在浏览 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%代表什么? 请解释一下吗?
简单来说...
您将看到百分位数(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。
要解释最小值、25%、50%、75% 和最大值,请想象将每列从最低值到最高值排序。第一个(最小)值是最小值。如果您浏览列表的四分之一,您会发现一个大于值的 25% 且小于值的 75% 的数字。即 25% 的值(发音为“25%”)。第 50 个和第 75 个百分位数的定义类似,max 是最大的数字。
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
您将看到数据框的分位数: https://en.wikipedia.org/wiki/Quantile
例如 25-%-Quantil:
您所有值的 25% 低于该值
您的情况:
A= 条
B=一
75% 分位数为 1.107509,这意味着组中 D 类数据条目(条形和一)的 75% 低于此值。
百分位数在统计中用于为您提供一个数字,该数字描述值列表中给定百分比的值低于的值。