如何在 .groupby() 和 .agg() 之后从 pandas DataFrame 中获取子列?

问题描述 投票:0回答:1

我正在尝试对 Pandas DataFrame 执行分组和聚合操作。具体来说,我想计算每个班级组的平均值和计数。但是,我在访问生成的列时遇到问题。

这是我想要实现的转变的一个例子:

import pandas as pd

df = pd.DataFrame({
    'Class': ['A', 'B', 'A', 'B', 'C'],
    'Val': [25, 30, 35, 40, 15],
})

grouped = df.groupby(by='Class').agg({'Val': ['mean', 'count']})

我得到的结果如下:

    Val
         mean  count
Class
A        30.0      2
B        35.0      2
C        15.0      1

但是,我想去掉“Val”子列来实现这个数据结构:

Class   mean  count
A       30.0      2
B       35.0      2
C       15.0      1
python pandas group-by aggregation
1个回答
0
投票

你应该先切片

agg
:

grouped = df.groupby(by='Class')['Val'].agg(['mean', 'count'])

输出:

       mean  count
Class             
A      30.0      2
B      35.0      2
C      15.0      1
© www.soinside.com 2019 - 2024. All rights reserved.