itertools.groupby与pandas.groupby的异同
背景
最近遇到一个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的异同相关推荐
- Pandas GroupBy对象 索引与迭代
import pandas as pd df = pd.DataFrame({'性别' : ['男', '女', '男', '女','男', '女', '男', '男'],'成绩' : ['优秀', ...
- Pandas GroupBy 深度总结
今天,我们将探讨如何在 Python 的 Pandas 库中创建 GroupBy 对象以及该对象的工作原理.我们将详细了解分组过程的每个步骤,可以将哪些方法应用于 GroupBy 对象上,以及我们可以 ...
- 【Python】Pandas GroupBy 深度总结
今天,我们将探讨如何在 Python 的 Pandas 库中创建 GroupBy 对象以及该对象的工作原理.我们将详细了解分组过程的每个步骤,可以将哪些方法应用于 GroupBy 对象上,以及我们可以 ...
- 数据分析利器,25个例子学会Pandas Groupby 操作!
点击上方"菜学Python",选择"星标"公众号 超级无敌干货,第一时间送达!!! 来源丨DeepHub IMBA 大家好,我是菜鸟哥. groupby是Pan ...
- 总结了25个Pandas Groupby 经典案例!!
大家好,我是俊欣~ groupby是Pandas在数据分析中最常用的函数之一.它用于根据给定列中的不同值对数据点(即行)进行分组,分组后的数据可以计算生成组的聚合值. 如果我们有一个包含汽车品牌和价格 ...
- 25个例子学会Pandas Groupby 操作(附代码)
来源:DeepHub IMBA 本文约2300字,建议阅读5分钟本文用25个示例详细介绍groupby的函数用法. groupby是Pandas在数据分析中最常用的函数之一.它用于根据给定列中的不同值 ...
- pandas—groupby如何得到分组里的数据
pandas-groupby如何得到分组里的数据 有的时候csv文件过大,利用循环时间消耗大,因此可以通过分组. 原数据如下: 想把link和future特征为基准,把current整合起来放在一列. ...
- python画熊猫代码_python – 使用子图和循环绘制Pandas groupby组
我正在尝试基于Pandas groupby对象生成子图的网格.我希望每个绘图都基于groupby对象的一组的两列数据.假数据集: C1,C2,C3,C4 1,12,125,25 2,13,25,25 ...
- python 组内排序_python - pandas groupby在组内排序
python - pandas groupby在组内排序 我想将数据框分组为两列,然后对组内的聚合结果进行排序. In [167]: df Out[167]: count job source 0 2 ...
最新文章
- 在Spring、Hibernate中使用Ehcache缓存
- 杂谈:选择游戏还是应用?
- 一、为什么要使用NoSQL数据库
- 实模式与保护模式详解二:地址映射
- Python 3标准库,[美] 道格·赫尔曼(Doug Hellmann)
- Linux下NFS(网络文件系统)的建立与配置方法
- 养成一个习惯有多难?不如先从一个小目标开始
- gitlab客户端下载配置
- Outlook读取奇妙清单Wunderlist日历失败的解决办法
- 51单片机(十)—— 8位数码管-数码管扫描
- 网页三维地图技术初探
- SSL双向认证和SSL单向认证的流程和区别
- python数学库函数包括求最大公约数函数吗_pythonmathcot函数_math库是python语言的数学模块吗_Python中的数学模块:...
- DG8FV-B9TKY-FRT9J-6CRCC-XPQ4G
- 软件测试面试问题汇总
- 南卡和三星哪款蓝牙耳机音质好些?高颜值且音质好的蓝牙耳机测评
- 关于nignx老是报错404的问题
- 突发!微软亚研CV大牛王井东离职,或将加入百度
- 全球及中国M2M组件行业发展动态及未来发展趋势预测报告2022~2027年
- 小程序,公众号微信客服消息开发
热门文章
- jq js css3 实现瀑布流
- Java实现随机人名抽取
- XinChaCha Trust SSL Organization Validated
- 干货分享:智慧工厂时代下大数据 + 智能的深度实践
- 【云计算课程】Lecture 1 云计算概述
- 加了域的计算机无法更改时间,解决Windows域控时间服务无法同步的问题
- Footprint Analytics: 去中心化存储协议是否能取代中心化云存储?
- 从校园到职场 | YK菌的2022年中总结
- python打开浏览器不显示浏览器页面_python+selenium 浏览器无界面模式运行
- vue - weath