我正在尝试对 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
你应该先切片
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