我正在通过 pandas groupby docs,当我在下面的特定列上分组时:
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% 和最大值,请想象从最低值到最高值对每列进行排序。第一个(最小)值是最小值。如果您浏览列表的四分之一,您会发现一个大于值的 25 % 且小于值的 75 % 的数字。那是 25 % 的值(发音为“第 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。
您可以测试DataFrameGroupBy.describe
:
对于数值数据,结果的索引将包括 count 、 mean 、 std 、 min 、 max 以及 lower 、 50 和 upper 百分位数。默认情况下,较低的百分位数为 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
您看到的是数据帧的分位数:s://en..org/wiki/Quantile
例如 25-%-分位数:
您所有值的 25 % 低于该值
在你的情况:
A = bar
B = one
具有 1.107509 的 75 % 分位数,这意味着组(bar 和 one)中类型 D 的 75 % 的数据条目低于此值。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(56条)