• 原文链接:3 simple ways to handle large...此外,Pandas数据处理能力也一流。 其实无论你使用什么库,大量的数据处理起来往往回遇到新的挑战。 数据处理时,往往会遇到没有足够内存(RAM)这个硬件问题。 企业往往...
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/2019053113223457.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly90cmFuc2xhdG9yLmJsb2cuY3Nkbi5uZXQ=,size_16,color_FFFFFF,t_70)
    > 原文链接:[3 simple ways to handle large data with
    > Pandas](https://towardsdatascience.com/3-simple-ways-to-handle-large-data-with-pandas-d9164a3c02c1)
    > 作者 | George Seif 
    > 译者 | jojoa
    
     易上手, 文档丰富的Pandas 已经成为时下最火的数据处理库。此外,Pandas数据处理能力也一流。
    
    其实无论你使用什么库,大量的数据处理起来往往回遇到新的挑战。
    数据处理时,往往会遇到没有足够内存(RAM)这个硬件问题。 企业往往需要能够存够数百, 乃至数千 的GB 数据。
    即便你的计算机恰好有足够的内存来存储这些数据, 但是读取数据到硬盘依旧非常耗时。
    别担心! Pandas 数据库会帮我们摆脱这种困境。 这篇文章包含3种方法来减少数据大小,并且加快数据读取速度。 我用这些方法,把超过100GB 的数据, 压缩到了64GB 甚至32GB 的内存大小。
    
    快来看看这三个妙招吧。
    
    **数据分块**
    
    csv 格式是一种易储存, 易更改并且用户易读取的格式。 pandas 有read_csv ()方法来上传数据,存储为CSV 格式。当遇到CSV 文件过大,导致内存不足的问题该怎么办呢?试试强大的pandas 工具吧!我们先把整个文件拆分成小块。这里,我们把拆分的小块称为chunk。
    
    一个chunk 就是我们数据的一个小组。 Chunk 的大小主要依据我们内存的大小,自行决定。
    
    过程如下:
    
    1.读取一块数据。
    2.分析数据。
    3.保存该块数据的分析结果。
    4.重复1-3步骤,直到所有chunk 分析完毕。
    5.把所有的chunk 合并在一起。
    
    我们可以通过read_csv()方法Chunksize来完成上述步骤。 Chunksize是指pandas 一次能读取到多少行csv文件。这个当然也是建立在RAM 内存容量的基础上。
    假如我们认为数据呈现高斯分布时, 我们可以在一个chunk 上, 进行数据处理和视觉化, 这样会提高准确率。
    
    当数据稍微复杂时, 例如呈现泊松分布时, 我们最好能一块块筛选,然后把每一小块整合在一起。 然后再进行分析。很多时候, 我们往往删除太多的不相关列,或者删除有值行。 我们可以在每个chunk 上,删除不相关数据, 然后再把数据整合在一起,最后再进行数据分析。
    
    代码如下:
    
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190531133418620.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly90cmFuc2xhdG9yLmJsb2cuY3Nkbi5uZXQ=,size_16,color_FFFFFF,t_70)
    **删除数据**
    
    有时候, 我们一眼就能看到需要分析的列。事实上, 通常名字,账号等列,我们是不做分析的。
    
    读取数据前, 先跳过这些无用的列,可以帮我们节省很多内存。 Pandas 可以允许我们选择想要读取的列。
    
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/201905311336195.png)
    把包含无用信息的列删除掉, 往往给我们节省了大量内存。
    
    此外,我们还可以把有缺失值的行,或者是包含“NA” 的行删除掉。 通过dropna()方法可以实现:
    
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190531133721790.png)
    有几个非常有用的参数,可以传给dropna():
    
    - how: 可选项:“any”(该行的任意一列如果出现”NA”, 删除该行) 
    - “all” (只有某行所有数数据全部是”NA” 时才删除)
    - thresh: 设定某行最多包含多少个NA 时,才进行删除
    - subset: 选定某个子集,进行NA 查找
    
    可以通过这些参数, 尤其是thresh 和 subset 两个参数可以决定某行是否被删除掉。
    
    Pandas 在读取信息的时候,无法删除列。但是我们可以在每个chunk 上,进行上述操作。
    
    **为列设定不同的数据类型**
    
    数据科学家新手往往不会对数据类型考虑太多。 当处理数据越来越多时, 就非常有必要考虑数据类型了。
    
    行业常用的解决方法是从数据文件中,读取数据, 然后一列列设置数据类型。 但当数据量非常大时, 我们往往担心内存空间不够用。
    
    在CSV 文件中,例如某列是浮点数, 它往往会占据更多的存储空间。 例如, 当我们下载数据来预测股票信息时, 价格往往以32位浮点数形式存储。
    
    但是,我们真的需要32位浮点数码? 大多数情况下, 股票价格以小数点后保留两位数据进行交易。 即便我们想看到更精确的数据, 16位浮点数已经足够了。
    
    我们往往会在读取数据的时候, 设置数据类型,而不是保留数据原类型。 那样的话,会浪费掉部分内存。
    
    通过read_csv() 中设置dtype参数来完成数据类型设置。还可以设置字典类型,设置该列是键, 设置某列是字典的值。
    
    请看下面的pandas 例子:
    
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190531134045566.png)
    文章到这里结束了! 希望上述三个方法可以帮你节省时间和内存。
    
    展开全文
  • 但它并非对于每个工作来说都是最佳选择,大数据处理就与它“气场不合”。 Pandas并不具备多处理器,并且处理较的数据集速度很慢。笔者消耗在等待Pandas读取一堆文件或对其进行汇总计算上的时间太多太多了。最近...
  • 一般来说,用pandas处理小于100兆的数据,性能不是问题。当用pandas处理100兆至几个G的数据时,将会比较耗时,同时会导致程序因内存不足而运行失败。 当然,像Spark这类的工具能够胜任处理100G至几个T的大数据集...
  • 一般来说,用pandas处理小于100兆的数据,性能不是问题。当用pandas处理100兆至几个G的数据时,将会比较耗时,同时会导致程序因内存不足而运行失败。 当然,像Spark这类的工具能够胜任处理100G至几个T的大数据集,...
  • Pandas处理超大规模数据 2019-06-24 02:33:08
    对于超大规模的csv文件,我们无法一下将...import pandas as pd reader = pd.read_csv('data/servicelogs', iterator=True)分块,每一块是一个chunk,之后将chunk进行拼接; loop = True chunkSize = 100000 ch...
  • pandas 数据处理案例 2019-09-30 18:03:10
    本篇实现一个 pandas 综合数据处理的案例。假设的场景就是计算某期间的物料进出存,涉及 pandas 多个 data frame 的关联、日期类型数据信息的提取、数据分组汇总等,掌握后应该能应付日常很多数据处理场景。这个案例...
  • 看到一篇关于如何有效利用Pandas节省内存的文章,很有收获,原文地址:Using pandas with large data—Tips for reducing memory usage by up to 90%。  简要总结一下这篇文章的中心思想:合理设计读取的数据类型。...
  • Pandas数据处理与分析 2019-12-26 17:03:58
    Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具,而且Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。他主要有以下功能: 为浮点数和与浮点数精度丢失提供了简易的...
  • Pandas使用一个二维的数据结构DataFrame来表示表格式的数据,相比较于Numpy,Pandas可以存储混合的数据结构,同时使用NaN来表示缺失的数据,而不用像Numpy一样要手工处理缺失的数据,并且Pandas使用轴标签来表示行和...
  • https://stackoverflow.com/questions/14262433/large-data-work-flows-using-pandas文中提到了利用pandas对HDFStore的操作,因为我平时没有接触过特别数据,所以对这里不是很熟悉,所以我计划先略过该篇。...
  • Why and How to Use Pandas with Large Data ,如何使用Pandas处理大批量数据,介绍了如何减少内存消耗,学习利用pandas进行大批量数据处理不错的参考资料。
  • 本文主要介绍pandas的一些基本操作,也是用的比较频繁是操作。主要分为以下几点: 1. pandas查看数据类型等 2. pandas构建一个完整的dataframe 3. pandas取行列的3种方法 ...6. pandas数据去重 7.p...
  • 本文素材来源于towardsdatascience技术博客网站,经本人编辑首发于CSDN,仅供技术分享所用,不作商用。 原文地址:...Mastering Pandas to Deal with ‘Dirty D...
  • 打开文件 a = pd.read_csv('a.txt', header = None, sep = '[_\t]+') header控制文件中是否包含列名,sep控制划分方式,可使用正则表达式 文件合并 c = pd.concat([a,b]) 列相同的两个文件纵向连接 ...
  • Pandas数据处理之Series 2019-03-06 23:37:19
    Pandas是python的第三方库,Pandas是建立在Numpy的基础上,其最大特色在于提供灵活的数据结构来处理关联数据和有标签的数据。 ...Pandas广泛应用于金融,统计以及社会科学领域的数据处理。本文...
  • pandas数据合并 2018-06-23 13:38:07
    数据处理中,不免会遇到数据之间的合并。学过关系数据库的童鞋应该都清楚数据表之间的连接。今天要说的数据合并其实和数据表之间的连接有很多相似之处。由于 pandas 库在数据分析中比较方便而且用者较多,我们就说...
  • 缺失值数据处理方式: 1.数据补齐 2.删除对应数据行 3.不处理 data.csv文件内容: import pandas as pd ''' uft-8编码:包含全世界所有国家需要用到的字符,英文网站用的较多 gbk编码:包含全部的中文字符 unicode...
  • 在训练机器学习模型的过程中,源数据常常不符合我们的要求。...我们在处理csv文件时,经常使用pandas,可以帮助处理的csv文件。 pandas处理CSV 文件的函数主要为read_csv() 和to_csv()这两个,其中r...
  • pandas数据处理 2017-03-26 16:10:47
    pandas是python非常重要的数据处理库,pandas提供了非常丰富的数据处理函数,对机器学习,数据挖掘前的数据预处理很有帮助。以下是最近小的使用总结:1、pandas读取了csv文件获取了Dataframe类型对象,该对象可以...
  • Pandas简介:Python Data Analysis Library(数据分析处理库) 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 pandas数据结构:  Series:一维数组,与Numpy中的一维ndarray类似...
1 2 3 4 5 ... 20
收藏数 51,618
精华内容 20,647