让pandas处理大数据速度变快的三个技巧

栏目: 数据库 · 发布时间: 5年前

内容简介:上一篇文章 写的是处理GB级数据时datatable比pandas会更高效,但是datatable使用起来毕竟不如pandas来的顺手。所以今天准备介绍pandas的三个使用技巧来让我们的运行效率提高,以便处理较大体量的数据。csv格式是常见的数据存储方式,对于我们普通人而言易于读写。此外,在pandas中有pd.read_csv()函数可以将csv形式的数据进行读取。但当csv文件非常大的时候,直接读取会很吃内存,甚至会出现内存不够用的情况。这时候我们可以

上一篇文章 写的是处理GB级数据时datatable比pandas会更高效,但是datatable使用起来毕竟不如pandas来的顺手。所以今天准备介绍pandas的三个使用技巧来让我们的运行效率提高,以便处理较大体量的数据。

一、将数据分批次读取

csv格式是常见的数据存储方式,对于我们普通人而言易于读写。此外,在pandas中有pd.read_csv()函数可以将csv形式的数据进行读取。但当csv文件非常大的时候,直接读取会很吃内存,甚至会出现内存不够用的情况。

这时候我们可以 分批次(分块)读取,而不是一次性读取 这么大体量的数据。操作步骤:

  • 分批次读取

  • 处理每一批次

  • 保存每一批次的结果

  • 对所有的数据重复步骤1-3

  • 将所有的批次结果都结合起来

pd.read_csv(chunksize) 中的chunksize指的的是每一批次的行数



二、剔除Na数据

有时候我们使用的数据中含有是Na,这时候剔除含有Na的数据会减少很多数据量。这里用到 df.dropna(how,thresh,subset)

  • how: "all"或者"any"。all当记录中的所有特征均为na,才剔除该条记录;any当记录中只要有na,该条记录就剔除

  • thresh: 整数型,每条记录中允许拥有的最大na数,当记录中na数超过thresh数后,剔除该条记录

  • subset:列名列表,选取某些特征进行na检测和处理

三、设置特征的数据类型

对于大多数数据科学家而言,并不需要设置特征的数据类型,但是当处理的数据极其庞大的时候,我们就不得不考虑设置特征的数据类型以降低内存开销。

例如在csv的特征列中,某一列特征是32bit浮点数类型,但32bit浮点太精确了,实际上我们仅仅使用16bit就够用了。pd.read_csv(dtype)可以设置列的数据类型

推荐阅读


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Java核心技术·卷1:基础知识(原书第9版)

Java核心技术·卷1:基础知识(原书第9版)

(美)Cay S. Horstmann、(美)Gary Cornell / 周立新、陈波、叶乃文、邝劲筠、杜永萍 / 机械工业出版社 / 2013-11-1 / 119.00

Java领域最有影响力和价值的著作之一,拥有20多年教学与研究经验的资深Java技术专家撰写(获Jolt大奖),与《Java编程思想》齐名,10余年全球畅销不衰,广受好评。第9版根据JavaSE7全面更新,同时修正了第8版中的不足,系统全面讲解Java语言的核心概念、语法、重要特性和开发方法,包含大量案例,实践性强。 《Java核心技术·卷1:基础知识》共14章。第1章概述了Java语言与其......一起来看看 《Java核心技术·卷1:基础知识(原书第9版)》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

html转js在线工具
html转js在线工具

html转js在线工具