pandas分组求和两种方法的比较
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
得到的结果:
【pandas分组求和两种方法的比较】
文章图片
我们注意,得到的结果只有索引,而没有列名,结果是Series类型。
2、使用聚合函数agg
DataFrame.agg(func,axis = 0,* args,** kwargs )
参数func采用字典形式:{‘行名/列名’:‘函数名’},其使用指定轴上的一个或多个操作进行聚合。
df1 = df.groupby(['Fruits']).agg({"Numbers":"sum"})
df1
得到的结果:
文章图片
此次得到的结果既有索引又有列名,因此是DataFrame类型。
pandas分组求和的两种方法,得到的结果类型是不一样的。因此,我们在使用pandas进行分组求和的时候,需要注意这两种方法的区别。个人更推荐使用agg聚合函数,因为这种方法更简明易懂。
推荐阅读
- JS|JS 数组求和与数组求平均值
- Pandas(数据清洗)
- pandas使用
- 【golang】leetcode中级-字母异位词分组&无重复字符的最长子串
- Pandas批量读取csv文件数据存入到Mysql中
- 斯坦福大学密码学公开课——分组加密的应用(一次性密钥)
- 用Pandas库实现MySQL数据库的读写
- #|学习笔记 | Ch05 Pandas数据清洗 —— 缺失值、重复值、异常值
- Pandas——Series结构
- js对象数组(JSON)|js对象数组(JSON) 根据某个共同字段 分组