Python如何处理大数据?3个技巧效率提升攻略(推荐)

 更新时间:2019年04月15日 09:41:45   作者:c710473510  
这篇文章主要介绍了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个技巧效率提升攻略详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • Python Numpy实现修改数组形状

    Python Numpy实现修改数组形状

    NumPy(Numerical Python)是Python中用于处理数组和矩阵的重要库,它提供了丰富的功能,用于科学计算,本文主要介绍了如何使用NumPy提供的方法来改变数组的形状,感兴趣的可以了解下
    2023-11-11
  • python replace 空格数据处理的实现

    python replace 空格数据处理的实现

    本文主要介绍了python replace 空格数据处理的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • pyqt5 tablewidget 利用线程动态刷新数据的方法

    pyqt5 tablewidget 利用线程动态刷新数据的方法

    今天小编就为大家分享一篇pyqt5 tablewidget 利用线程动态刷新数据的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python pymongo模块常用操作分析

    Python pymongo模块常用操作分析

    这篇文章主要介绍了Python pymongo模块常用操作,结合实例形式分析了pymongo模块的导入、连接MongoDB数据以及插入、更新、删除、查询等操作相关实现技巧,需要的朋友可以参考下
    2018-09-09
  • pytorch索引查找 index_select的例子

    pytorch索引查找 index_select的例子

    今天小编就为大家分享一篇pytorch索引查找 index_select的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配

    python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配

    今天小编就为大家分享一篇python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python中mmap模块处理大文本的操作方法

    Python中mmap模块处理大文本的操作方法

    这篇文章主要介绍了Python中mmap模块(处理大文本),将一个普通文件映射到内存中,通常在需要对文件进行频繁读写时使用,这样用内存映射读写取代I/O缓存读写,以获得较高的性能,需要的朋友可以参考下
    2023-02-02
  • Python基础学习之反射机制详解

    Python基础学习之反射机制详解

    在Python中,反射是指通过一组内置的函数和语句,在运行时动态地访问、检查和修改对象的属性、方法和类信息的机制。本文将通过简单的示例和大家讲讲Python中的反射机制,希望对大家有所帮助
    2023-03-03
  • Python如何将一个EXCEL表拆分多个excel表

    Python如何将一个EXCEL表拆分多个excel表

    在Python中,你可以使用pandas库来读取Excel文件,并将一个大的Excel表格(工作表)拆分成多个单独的Excel文件,这篇文章主要介绍了Python如何将一个EXCEL表拆分多个excel表,需要的朋友可以参考下
    2024-06-06
  • python GUI库图形界面开发之PyQt5多线程中信号与槽的详细使用方法与实例

    python GUI库图形界面开发之PyQt5多线程中信号与槽的详细使用方法与实例

    这篇文章主要介绍了python GUI库图形界面开发之PyQt5多线程中信号与槽的详细使用方法与实例,需要的朋友可以参考下
    2020-03-03

最新评论