Pandas是Python语言的一个扩大程序库,被广泛应用于数据分析。在数据分析工作中,如果要将数据依据某个(多个)字段划分为不同的组(group),则须要用到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、应用聚合函数agg DataFrame.agg(func,axis = 0,* args,** kwargs ) 参数func采纳字典模式:{‘行名/列名’:‘函数名’},其应用指定轴上的一个或多个操作进行聚合。
df1 = df.groupby(['Fruits']).agg({"Numbers":"sum"}) df1
失去的后果:
此次失去的后果既有索引又有列名,因而是DataFrame类型。 pandas分组求和的两种办法,失去的后果类型是不一样的。因而,咱们在应用pandas进行分组求和的时候,须要留神这两种办法的区别。集体更举荐应用agg聚合函数,因为这种办法更扼要易懂。