我试图在Pandas DataFrame上执行groupby和聚合操作.具体来说,我想计算每个类组的平均值和计数.但是,我在访问生成的列时遇到了问题.

以下是我想要实现的转换的一个例子:

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

但是,我想go 掉"Val"子列来实现这个数据 struct :

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

推荐答案

你应该在agg之前切:

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

输出:

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

Python相关问答推荐

Django管理面板显示字段最大长度而不是字段名称

需要计算60,000个坐标之间的距离

如何在Windows上用Python提取名称中带有逗号的文件?

如何找到满足各组口罩条件的第一行?

Python键入协议默认值

如何将一个动态分配的C数组转换为Numpy数组,并在C扩展模块中返回给Python

移动条情节旁边的半小提琴情节在海运

多指标不同顺序串联大Pandas 模型

判断solve_ivp中的事件

OpenGL仅渲染第二个三角形,第一个三角形不可见

如何过滤组s最大和最小行使用`transform`'

使用polars. pivot()旋转一个框架(类似于R中的pivot_longer)

Autocad使用pyautocad/comtypes将对象从一个图形复制到另一个图形

BeatuifulSoup从欧洲志愿者服务中获取数据和解析:一个从EU-Site收集机会的小铲子

如何关联来自两个Pandas DataFrame列的列表项?

查找数据帧的给定列中是否存在特定值

使用元组扩展字典的产品挑战

为什么在安装了64位Python的64位Windows 10上以32位运行?

PyTorch变压器编码器中的填充掩码问题

Pandas:新列,从列表中采样,基于列值