时间:2021-05-22
具体代码如下所示:
from operator import itemgetter #itemgetter用来去dict中的key,省去了使用lambda函数from itertools import groupby #itertool还包含有其他很多函数,比如将多个list联合起来。。d1={'name':'zhangsan','age':20,'country':'China'}d2={'name':'wangwu','age':19,'country':'USA'}d3={'name':'lisi','age':22,'country':'JP'}d4={'name':'zhaoliu','age':22,'country':'USA'}d5={'name':'pengqi','age':22,'country':'USA'}d6={'name':'lijiu','age':22,'country':'China'}lst=[d1,d2,d3,d4,d5,d6]#通过country进行分组:lst.sort(key=itemgetter('country')) #需要先排序,然后才能groupby。lst排序后自身被改变lstg = groupby(lst,itemgetter('country')) #lstg = groupby(lst,key=lambda x:x['country']) 等同于使用itemgetter()for key,group in lstg: for g in group: #group是一个迭代器,包含了所有的分组列表 print key,g返回:
自定义分组:
from itertools import groupbylst=[2,8,11,25,43,6,9,29,51,66]def gb(num): if num <= 10: return 'less' elif num >=30: return 'great' else: return 'middle'print [(k,list(g))for k,g in groupby(sorted(lst),key=gb)]返回:
[('less', [2, 6, 8, 9]), ('middle', [11, 25, 29]), ('great', [43, 51, 66])]总结
以上所述是小编给大家介绍的Python中的分组函数groupby和itertools),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
一、groupby能做什么?python中groupby函数主要的作用是进行数据的分组以及分组后地组内运算!对于数据的分组和分组运算主要是指groupby函数的
今天大概弄懂了partitionby和groupby的区别联系。1.groupby是分组函数,partitionby是分析函数(然后像sum()等是聚合函数);
GROUPBY是分组查询,一般GROUPBY是和聚合函数配合使用,你可以想想你用了GROUPBY按ITEM.ITEMNUM这个字段分组,那其他字段内容不同,变成
一,如果一个查询中使用了分组函数,任何不在分组函数中的列或表达式必须要在groupby中,否则出错。第一个查询中,deptno没有出现在groupby中,也没有
先以mysql的语句,聚合用在分组里,对mysql中groupby是分组每什么的时候就要分组,如每个小组,就按小组分,groupby字段having聚合函数#举