目的:
利用groupby方法进行分组聚合是pandas常用操作之一,但通常我们需要为分组聚合后生成的新列赋予新的列名,传统的操作是分为两步:先分组聚合后更改列名,但pandas中也可直接完成以上操作。
原理:
利用pd.NamedAgg同时传递应聚合列、聚合操作、新列名称.
操作:
1、使用pd.NamedAgg封装相关参数
df = pd.DataFrame({'id':[1,2,3,4,5],'class':['A', 'B','C', 'A', 'B'],
'score': [60, 70, 89, 90, 100]}
df.groupby('class').agg('平均分' = pd.NamedAgg(column="height",aggfunc="min"))
2、直接传递元组亦可
df.groupby('class').agg('平均分' = ("height","min"))
Note:
`pandas.NamedAgg` is just a `namedtuple`. Plain tuples are allowed as well