python大数据学习顺序(Python如何处理大数据?3个技巧效率提升攻略推荐)
python大数据学习顺序
Python如何处理大数据?3个技巧效率提升攻略推荐如果你有个5、6 g 大小的文件,想把文件内容读出来做一些处理然后存到另外的文件去,你会使用什么进行处理呢?不用在线等,给几个错误示范:有人用multiprocessing 处理,但是效率非常低。于是,有人用python处理大文件还是会存在效率上的问题。因为效率只是和预期的时间有关,不会报错,报错代表程序本身出现问题了~
所以,为什么用python处理大文件总有效率问题?
如果工作需要,立刻处理一个大文件,你需要注意两点:
01、大型文件的读取效率
面对100w行的大型数据,经过测试各种文件读取方式,得出结论:
|
with open (filename, "rb" ) as f: for fline in f: pass |
方式最快,100w行全遍历2.7秒。
基本满足中大型文件处理效率需求。如果rb改为r,慢6倍。但是此方式处理文件,fline为bytes类型。但是python自行断行,仍旧能很好的以行为单位处理读取内容。
02、文本处理效率问题
这里举例ascii定长文件,因为这个也并不是分隔符文件,所以打算采用列表操作实现数据分割。但是问题是处理20w条数据,时间急剧上升到12s。本以为是byte.decode增加了时间。遂去除decode全程bytes处理。但是发现效率还是很差。
最后用最简单方式测试,首次运行,最简单方式也要7.5秒100w次。
想知道这个方式处理的完整代码是什么吗?扫描文末二维码,联系小编可以获取哦~
那么关于python处理大文件的技巧,从网络整理三点:列表、文件属性、字典三个点来看看。
1.列表处理
def fun(x):尽量选择集合、字典数据类型,千万不要选择列表,列表的查询速度会超级慢,同样的,在已经使用集合或字典的情况下,不要再转化成列表进行操作,比如:
|
values_count = 0 # 不要用这种的 if values in dict .values(): values_count + = 1 # 尽量用这种的 if keys,values in dict : values_count + = 1 |
后者的速度会比前者快好多好多。
2. 对于文件属性
如果遇到某个文件,其中有属性相同的,但又不能进行去重操作,没有办法使用集合或字典时,可以增加属性,比如将原数据重新映射出一列计数属性,让每一条属性具有唯一性,从而可以用字典或集合处理:
|
return '(' + str (x) + ', 1)' list ( map (fun,[ 1 , 2 , 3 ])) |
使用map函数将多个相同属性增加不同项。
3. 对于字典
多使用iteritems()少使用items(),iteritems()返回迭代器:
|
>>> d = { 'a' : 1 , 'b' : 2 } >>> for i in d.items() : .... print i ( 'a' , 1 ) ( 'b' , 2 ) >>> for k,v in d.iteritems() : ... print k,v ( 'a' , 1 ) ( 'b' , 2 ) |
字典的items函数返回的是键值对的元组的列表,而iteritems使用的是键值对的generator,items当使用时会调用整个列表 iteritems当使用时只会调用值。
除了以下5个python使用模块,你还有什么技巧解决大文件运行效率的问题吗?深入了解更多python实用模块,快速提升工作效率~
读写文件技术,今后会用到测试数据的参数化和测试报告写作功能中~
数据处理技术,今后测试脚本的测试数据处理过程可以用到~
数据统计分析技术,今后会在测试结果分析中用到
图表展示技术,在今后的测试框架中相关测试报告会用到
程序自动触发技术,可用于测试脚本程序的自动执行。
以上所述是小编给大家介绍的python如何处理大数据?3个技巧效率提升攻略详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!
原文链接:https://blog.csdn.net/c710473510/article/details/89191364
- python八卦图(Python实现九宫格式的朋友圈功能内附“马云”朋友圈)
- python3常见问题(对Python3使运行暂停的方法详解)
- python 后台django(Python Django给admin添加Action的方法实例详解)
- python批量图像换背景(详解Python给照片换底色蓝底换红底)
- python把str转成list(python3 字符串/列表/元组str/list/tuple相互转换方法及join函数的使用)
- python与php(解决Python3 被PHP程序调用执行返回乱码的问题)
- python调用支付宝支付接口(python实现支付宝转账接口)
- python微信消息模拟请求(python实现微信机器人: 登录微信、消息接收、自动回复功能)
- python模块光照强度(我如何用 CircuitPython 和开源工具监控温室)
- python函数使用方法高级用法(Python函数的参数常见分类与用法实例详解)
- python的4种数字变量(Python将字符串常量转化为变量方法总结)
- python支持面向对象的程序设计(Python面向对象程序设计之类的定义与继承简单示例)
- pythonlambda详解(Python的条件表达式和lambda表达式实例)
- python 字典按key值排序(Python 按字典dict的键排序,并取出相应的键值放于list中的实例)
- 怎么用python实现链表(Python3实现的判断回文链表算法示例)
- python和java的共同语法(Python和Java的语法对比分析语法简洁上python的确完美胜出)
- 美国数十万加仑牛奶倒下水道怎么回事 原因曝光令人心痛(美国数十万加仑牛奶倒下水道怎么回事)
- 探索中国神秘文字(探索中国神秘文字)
- 重温《蜗居》 宋思明选中海藻为红颜知己,纯属巧合,与爱无关(宋思明选中海藻为红颜知己)
- 越南旅游攻略(越南旅游攻略自由行)
- 成都旅游攻略(成都旅游攻略自由行最佳线路)
- 给儿童吃什么最好(给儿童吃什么最好消化)
热门推荐
- jquery无缝滚动代码(jQuery实现表格行数据滚动效果)
- sqlserver数据库还原教程(SQL Server通过重建方式还原master数据库)
- SQL数据库存储过程示例解析(SQL数据库存储过程示例解析)
- vue手动清除keepalive缓存(vue中keep-alive组件的用法示例)
- jQuery如何操作下拉框select
- phpredis存储对象(PHP使用redis位图bitMap 实现签到功能)
- dedecms标签路径修改问题(解决织梦DEDE5.7 tags系列bug图解步骤)
- 云主机内存满了怎么办(为什么云主机不建议安装太多软件?)
- html5定位教学(Html5 webview元素定位工具的实现)
- 宝塔面板7.8.0软件商店打不开(宝塔BT面板专业版付费和免费版有什么区别?)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9