郑州Python培训班教你数据统计,分组的一些小技.doc

郑州Python培训班教你数据统计,分组的一些小技.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
郑州Python培训班教你数据统计,分组的一些小技

郑州Python培训班教你数据统计,分组的一些小技巧在字典中将键映射到多个值上面 {'b':?[4,?5,?6], 'a':?[1,?2,?3]} 有时候我们在统计相同key值的时候,希望把所有相同key的条目添加到以key为键的一个字典中,然后再进行各种操作,这时候我们就可以使用下面的代码进行操作:from collections import?defaultdict d?=?defaultdict(list) print(d) d['a'].append(1) d['a'].append(2) d['a'].append(3) d['b'].append(4) d['b'].append(5) d['b'].append(6) print(d) print(d.get("a")) print(d.keys()) print([d.get(i)?for?i?in?d]) 这里是使用了collections中的方法,这里面还拥有很多有用的方法,我们有时间在继续进行深入了解。 上面代码运行结果:defaultdict(,?{}) defaultdict(,?{'b':?[4,?5,?6],?'a':?[1,?2,?3]}) [1,?2,?3] dict_keys(['b',?'a']) [[4,?5,?6],?[1,?2,?3]] 我们将数据填入之后,相当于进行快速分组,然后遍历每个组就可以统计一些我们需要的数据。迅速转换字典键值对 data?=?{...}zip(data.values(),?data.keys()) data是我们的格式数据,使用zip后进行快速键值转换,然后可以使用max,min之类函数进行数据操作。通过公共键对字典进行排序 from operator import itemgetterdata?=?[ ????{'name':?"bran",?"uid":?101}, ????{'name':?"xisi",?"uid":?102}, ????{'name':?"land",?"uid":?103} ] print(sorted(data,?key=itemgetter("name"))) print(sorted(data,?key=itemgetter("uid"))) 数据格式就是data,我们想要对name或者uid进行排序我们就是用代码中的方法。运行结果:[{'name':?'bran',?'uid':?101},?{'name':?'land',?'uid':?103},?{'name':?'xisi',?'uid':?102}] [{'name':?'bran',?'uid':?101},?{'name':?'xisi',?'uid':?102},?{'name':?'land',?'uid':?103}] 正如我们期望中的一样对列表中的多个字典根据某一字段进行分组 注意注意,在进行分组前要首先对数据进行排序处理,排序字段根据实际要求来选择。即将处理的数据:rows?=?[ ????{'name':?"bran",?"uid":?101,?"class":?13}, ????{'name':?"xisi",?"uid":?101,?"class":?11}, ????{'name':?"land",?"uid":?103,?"class":?10} ] 期望处理结果:{ 101:?[{'name':?'xisi',?'class':?11,?'uid':?101},{'name':?'bran',?'class':?13,?'uid':?101}], 103:?[{'name':?'land',?'class':?10,?'uid':?103}] } 我们按照uid进行分组,这里只是演示,uid一般也不会重复。这个比较复杂一点,我们一部一步来分解。some?=?[('a',?[1,?2,?3]),?('b',?[4,?5,?6])] print(dict(some)) 结果:{'b': [4, 5, 6], 'a': [1, 2, 3]} 这里我们的目的是将元组转换成字典,这个很简单,应该都能看懂。接着我们来下一步对待处理数据进行排序:data_one?=?sorted(rows,?key=itemgetter("class")) print(data_one) data_two?=?sorted(rows,?key=lambda?x:?(x["uid"],?x["class"])) print(data_two) 这里我们提供两种排序方式原理相同,只是样式稍有区别,第一种data_one是直接使用itemgetter,按照我们前面使用过得,直接按照某一字段进行排

文档评论(0)

fzhuixlu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档