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 聚合函数,因为这种办法更扼要易懂。