从 group by 获取列描述

Posted

技术标签:

【中文标题】从 group by 获取列描述【英文标题】:Get columns describe from group by 【发布时间】:2017-03-03 12:40:41 【问题描述】:

我对从 Pandas 的数据集按组获取数据描述很感兴趣。 这些数据是指不同人的假期。

此外,访问过的地方的数量存储在该城市。

       City     Name   Places
0   Seattle    Alice   10
1   Seattle      Bob   11
2  Portland  Mallory   7
3   Seattle  Mallory   5
4   Memphis      Bob   6
5  Portland  Mallory   9
6   Memphis    Alice   1
7   Memphis    Alice   20
8   Seattle    Alice   14
9   Seattle      Bob   10

我想从 DataFrame.describe() 中获取数据

新的数据框应该是这样的。

Name    City   Count   Mean   Std   Min   25%   50%   75%   Max
Alice   Seattle    2   X      X     X     X     X     X     X
Alice   Memphis    2   X      X     X     X     X     X     X
Bob     Seattle    2   X      X     X     X     X     X     X
Bob     Memphis    1   X      X     X     X     X     X     X
Mallory Portland   2   X      X     X     X     X     X     X
Mallory Seattle    1   X      X     X     X     X     X     X

谢谢!

【问题讨论】:

【参考方案1】:

我认为你需要groupbydescribe,最后由unstack 重塑:

df = df.groupby(['Name','City'])['Places'].describe().unstack().reset_index()
print (df)
      Name      City  count  mean        std   min    25%   50%    75%   max
0    Alice   Memphis    2.0  10.5  13.435029   1.0   5.75  10.5  15.25  20.0
1    Alice   Seattle    2.0  12.0   2.828427  10.0  11.00  12.0  13.00  14.0
2      Bob   Memphis    1.0   6.0        NaN   6.0   6.00   6.0   6.00   6.0
3      Bob   Seattle    2.0  10.5   0.707107  10.0  10.25  10.5  10.75  11.0
4  Mallory  Portland    2.0   8.0   1.414214   7.0   7.50   8.0   8.50   9.0
5  Mallory   Seattle    1.0   5.0        NaN   5.0   5.00   5.0   5.00   5.0

【讨论】:

非常简洁的答案!

以上是关于从 group by 获取列描述的主要内容,如果未能解决你的问题,请参考以下文章

通过 group by 和 joins 获取多个表的多个列的总和

Linq Group by 并获取返回所有列的特定字符串规则的所有值

使用 group_by 将两个不同表列的总和获取到单个列

SQL Group By以获取列值的计数

在 SQL 中使用 Group By 和 Aggregate - 获取错误“选择列表中的列无效,因为它不包含在聚合函数或 GROUP BY 中”

sqlite GROUP BY 和 ORDER