首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >聚合值的聚合

聚合值的聚合
EN

Stack Overflow用户
提问于 2015-12-10 10:46:38
回答 1查看 35关注 0票数 1

我有一个分组数据框架,我用count进行聚合:

代码语言:javascript
复制
counted = df.groupby(['col1','col2']).count()

现在,算数实际上是:

代码语言:javascript
复制
col1  col2
1     A    22
      B    21
      C    1
2     G    22
...

是否有任何方法来计算已计算值的std/最大值,以便我得到:

代码语言:javascript
复制
col1  std
1     1.34
2      3

以此类推。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-10 11:05:31

您所要做的就是在计数后调用groupby(),但不是提供参数'by',而是提供参数level=0。这将返回另一个DataFrameGroupBy对象,在索引的第一级上分组(此处为col1)。

然后你可以做任何你喜欢的聚合。下面是我的例子:

代码语言:javascript
复制
#set up a dataframe as in hte provided example
df=pd.DataFrame([[1,'A',22],[1,'B',21],[1,'C',1]],columns=['col1','col2','col3'])
#get the indeces to match the example
counted= df.set_index(['col1','col2'],drop=True,inplace=False)

为了简单起见,我制作了一个df,它只是模仿您的第一个组:

代码语言:javascript
复制
>>> counted
8:            col3
col1 col2      
1    A       22
     B       21
     C        1

再次执行groupby操作,然后执行聚合:

代码语言:javascript
复制
>>> counted.groupby(level=0).std()
9:            col3
col1           
1     11.846237
>>> counted.groupby(level=0).max()
10:       col3
col1      
1       22
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34199872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档