Pandas是Python语言的一个扩展库,广泛应用于数据分析。在数据分析工作中,如果想把数据按照某个(多个)字段分成不同的组(组),就需要用到Pandas的groupby方法。在对不同组求和时,我们既可以直接使用sum()函数,也可以使用agg聚合函数。这两种方法有什么区别?哪种方法会更好?一个简单的例子:df=pd.DataFrame({"Fruits":["apple","banana","apple","pear","apple","banana"],"Numbers":[5,8,9,3,4,5]})df的取值如下:我们按照水果的种类进行分组,求每个水果个数的总和。1.直接使用sum()函数df0=df.groupby(['Fruits'])['Numbers'].sum()df0得到结果:我们注意到结果只有索引,没有列名,结果是Series类型。2、使用聚合函数aggDataFrame.agg(func,axis=0,*args,**kwargs)参数func采用字典形式:{'行名/列名':'函数名'},其中使用指定轴之一或要聚合的多个操作。df1=df.groupby(['Fruits']).agg({"Numbers":"sum"})df1得到的结果:本次得到的结果既有索引又有列名,所以是DataFrame类型。pandas分组和求和两种方法产生不同类型的结果。因此,我们在使用pandas进行分组求和时,需要注意这两种方法的区别。个人推荐使用agg聚合函数,因为这种方式更加简洁易懂。
