背景

最近遇到一个bug,是在老代码中,多年用下来都没事,但是新增业务需求就遇到问题了。经过排除,发现是由于itertools.groupby的用法与想象中不一样,至少与我熟知的pandas.groupby不太一样。在网上没看到相关的比较,于是自己写一个异同对比。

itertools.groupby与pandas.groupby的相同点

# itertools.groupby
from itertools import groupby
a = groupby([1,1,2,3])
for i,j in a:print(i,'  ',len(list(j)))# pandas.groupby
import pandas
b = pandas.Series([0,1,2,3],index=[1,1,2,3],name='b').groupby(level=0,)
b.apply(lambda x:len(x))

能看出两者都是基于一定规则的分组,但是当数据有序时,两者的分组结果是相近的。

itertools.groupby与pandas.groupby的不同点

# itertools.groupby
from itertools import groupby
a = groupby([1,2,3,1])
for i,j in a:print(i,'  ',len(list(j)))# pandas.groupby
import pandas
b = pandas.Series([0,1,2,3],index=[1,2,3,1],name='b').groupby(level=0,)
b.apply(lambda x:len(x))

能看出,当数据无序时,两者的分组结果不同。
pandas.groupby的结果与之前并无差异。但itertools.groupby的分组结果更像是相邻数据去重后再分组的结果,同样的值,如果被其他值分割的话,分组结果完全不一样。

总结

数据无序时,准确来说是相同值的数据不相邻时,itertools.groupby可能会产生意料之外的结果,

itertools.groupby与pandas.groupby的异同相关推荐

  1. Pandas GroupBy对象 索引与迭代

    import pandas as pd df = pd.DataFrame({'性别' : ['男', '女', '男', '女','男', '女', '男', '男'],'成绩' : ['优秀', ...

  2. Pandas GroupBy 深度总结

    今天,我们将探讨如何在 Python 的 Pandas 库中创建 GroupBy 对象以及该对象的工作原理.我们将详细了解分组过程的每个步骤,可以将哪些方法应用于 GroupBy 对象上,以及我们可以 ...

  3. 【Python】Pandas GroupBy 深度总结

    今天,我们将探讨如何在 Python 的 Pandas 库中创建 GroupBy 对象以及该对象的工作原理.我们将详细了解分组过程的每个步骤,可以将哪些方法应用于 GroupBy 对象上,以及我们可以 ...

  4. 数据分析利器,25个例子学会Pandas Groupby 操作!

    点击上方"菜学Python",选择"星标"公众号 超级无敌干货,第一时间送达!!! 来源丨DeepHub IMBA 大家好,我是菜鸟哥. groupby是Pan ...

  5. 总结了25个Pandas Groupby 经典案例!!

    大家好,我是俊欣~ groupby是Pandas在数据分析中最常用的函数之一.它用于根据给定列中的不同值对数据点(即行)进行分组,分组后的数据可以计算生成组的聚合值. 如果我们有一个包含汽车品牌和价格 ...

  6. 25个例子学会Pandas Groupby 操作(附代码)

    来源:DeepHub IMBA 本文约2300字,建议阅读5分钟本文用25个示例详细介绍groupby的函数用法. groupby是Pandas在数据分析中最常用的函数之一.它用于根据给定列中的不同值 ...

  7. pandas—groupby如何得到分组里的数据

    pandas-groupby如何得到分组里的数据 有的时候csv文件过大,利用循环时间消耗大,因此可以通过分组. 原数据如下: 想把link和future特征为基准,把current整合起来放在一列. ...

  8. python画熊猫代码_python – 使用子图和循环绘制Pandas groupby组

    我正在尝试基于Pandas groupby对象生成子图的网格.我希望每个绘图都基于groupby对象的一组的两列数据.假数据集: C1,C2,C3,C4 1,12,125,25 2,13,25,25 ...

  9. python 组内排序_python - pandas groupby在组内排序

    python - pandas groupby在组内排序 我想将数据框分组为两列,然后对组内的聚合结果进行排序. In [167]: df Out[167]: count job source 0 2 ...

最新文章

  1. 在Spring、Hibernate中使用Ehcache缓存
  2. 杂谈:选择游戏还是应用?
  3. 一、为什么要使用NoSQL数据库
  4. 实模式与保护模式详解二:地址映射
  5. Python 3标准库,[美] 道格·赫尔曼(Doug Hellmann)
  6. Linux下NFS(网络文件系统)的建立与配置方法
  7. 养成一个习惯有多难?不如先从一个小目标开始
  8. gitlab客户端下载配置
  9. Outlook读取奇妙清单Wunderlist日历失败的解决办法
  10. 51单片机(十)—— 8位数码管-数码管扫描
  11. 网页三维地图技术初探
  12. SSL双向认证和SSL单向认证的流程和区别
  13. python数学库函数包括求最大公约数函数吗_pythonmathcot函数_math库是python语言的数学模块吗_Python中的数学模块:...
  14. DG8FV-B9TKY-FRT9J-6CRCC-XPQ4G
  15. 软件测试面试问题汇总
  16. 南卡和三星哪款蓝牙耳机音质好些?高颜值且音质好的蓝牙耳机测评
  17. 关于nignx老是报错404的问题
  18. 突发!微软亚研CV大牛王井东离职,或将加入百度
  19. 全球及中国M2M组件行业发展动态及未来发展趋势预测报告2022~2027年
  20. 小程序,公众号微信客服消息开发

热门文章

  1. jq js css3 实现瀑布流
  2. Java实现随机人名抽取
  3. XinChaCha Trust SSL Organization Validated
  4. 干货分享:智慧工厂时代下大数据 + 智能的深度实践
  5. 【云计算课程】Lecture 1 云计算概述
  6. 加了域的计算机无法更改时间,解决Windows域控时间服务无法同步的问题
  7. Footprint Analytics: 去中心化存储协议是否能取代中心化云存储?
  8. 从校园到职场 | YK菌的2022年中总结
  9. python打开浏览器不显示浏览器页面_python+selenium 浏览器无界面模式运行
  10. vue - weath