python - 对聚合值进行聚合

标签 python pandas

我有一个分组数据框,我用计数聚合:

counted = df.groupby(['col1','col2']).count()

现在,算下来实际上是:

col1  col2
1     A    22
      B    21
      C    1
2     G    22
...

有什么方法可以计算计数值的标准/最大值,以便我得到:

col1  std
1     1.34
2      3

等等..

最佳答案

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

然后你就可以做你喜欢的聚合了。这是我的例子:

#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 ,它只是模仿您的第一个组:

>>> counted
8:            col3
col1 col2      
1    A       22
     B       21
     C        1

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

>>> counted.groupby(level=0).std()
9:            col3
col1           
1     11.846237
>>> counted.groupby(level=0).max()
10:       col3
col1      
1       22

关于python - 对聚合值进行聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34199872/

相关文章:

Python - 和,或验证

python - 在 GTK 应用程序中嵌入 python 程序(C 语言)

python - Zappa 不打包嵌套的源目录

python - 更改图上的背景图像

python - 将多列中的行移动到各自的列中 Python

python - 我将如何按列表形式的唯一值进行分组?

python - 将单索引 DataFrame 复制到 MultiIndex DataFrame

python - 将一个 Pandas Dataframe 除以另一个 - 忽略索引但尊重列

python - 如何使用Selenium和Python从链接中提取动态图像?

Python json规范化API请求