如何在 .groupby() 和 .agg() 后从 pandas DataFrame 获取子列?
我正在尝试对一个Pandas数据框进行分组和聚合操作。具体来说,我想计算每个类别组的平均值和计数。不过,我在访问生成的列时遇到了一些问题。
这是我想要的转换示例:
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
1 个回答
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