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实现简单层次聚类算法以及可视化)
- python画佩奇(啥是佩奇?使用Python自动绘画小猪佩奇的代码实例)
- python装饰器初学者教程(Python3.5装饰器原理及应用实例详解)
- python3.7手册中文版(Python3.4解释器用法简单示例)
- pythonpandas提取列索引(Python3.5 Pandas模块缺失值处理和层次索引实例详解)
- python如何把字符串转换成数字(python实现字符串加密成纯数字)
- python3 for循环怎么用(Python3.5基础之变量、数据结构、条件和循环语句、break与continue语句实例详解)
- 怎样在python中散点图(python使用Plotly绘图工具绘制散点图、线形图)
- pythonsvr时序预测(利用Python半自动化生成Nessus报告的方法)
- python出现modify怎么办(解决Python找不到ssl模块问题 No module named _ssl的方法)
- python中创建类的方法(Python中如何导入类示例详解)
- python 装饰器模式(python重试装饰器的简单实现方法)
- pythonpandas数据类型(Python3.5 Pandas模块之Series用法实例分析)
- pythonexcel报表实例(对python生成业务报表的实例详解)
- python列表生成怎么用(详解python列表生成式和列表生成式器区别)
- python如何获取微信好友(利用Python查看微信共同好友功能的实现代码)
- 袁冰妍终于接到新剧,饰演反追男主,看到合作演员 眼光果然毒辣(袁冰妍终于接到新剧)
- 记忆中的台词(记忆中的台词)
- 袁冰妍轧戏 拍《琉璃》的同时还在拍《将夜》,难怪被骂演技差(拍琉璃的同时还在拍将夜)
- 刚红就耍大牌,《琉璃》角色滤镜碎一地,心疼工作人员(琉璃角色滤镜碎一地)
- 袁冰妍郑业成这对可以处,有脸红情话他们是真的敢说(袁冰妍郑业成这对可以处)
- 《祝卿好》台词又土又甜,就喜欢这么直接的恋爱(祝卿好台词又土又甜)
热门推荐
- dedecms参数不显示(织梦DedeCms中出现Safe Alert: Request Error step 1/2 的解决方法)
- tick数据间隔时间为2秒(让你一看就明白的$nextTick讲解)
- linux部署tomcat项目(阿里云服务器linux系统搭建Tomcat部署Web项目)
- xm文档使用教程(xmapp环境搭建注意事项说明)
- win7安装iis系统教程(win7环境下安装配置IIS服务器图文教程)
- 小白vue教学(尤大大新活petite-vue的实现)
- iframe解决跨域问题(跨域修改iframe页面内容详解)
- Forms.Timer、Timers.Timer、Threading.Timer的区别
- netcoredocker视频教程(Docker安装部署Net Core实现过程解析)
- 如何编写错误日志才更容易排查问题
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9