资源链接:han-link.cn/4240.html
#妙笔生花创作挑战#
前使用Python读取超大CSV文件时,出现MemoryError错误,甚至死机。。。呕心沥血潜心研究后,发现使用pandas的read_csv模块通过分块读取,可以完美解决针对超大CSV文件进行数据分析处理时的内存不足问题,接下来与大家分享一下。
Anaconda是一个开源的Python发行版本,其包含了conda、Python、numpy、pandas等180多个科学包及其依赖项。建议直接安装Anaconda2 或 Anaconda3 ,最好装64位。
下载地址如下:
https://www.anaconda.com/
read_csv官方文档链接:
http://pandas.pydata.org/pandas-docs/stable/io.html#io-read-csv-table
从官方文档中我们注意到chunksize 、iterator两个参数,下面我们就这两个参数做详细介绍 。
Iteration
iterator : boolean, default False
Return TextFileReader object for iteration or getting chunks with get_chunk().
chunksize : int, default None
Return TextFileReader object for iteration. See iterating and chunking below.
read_csv中有个参数chunksize,通过指定一个chunksize分块大小来读取文件,返回的是一个可迭代的对象TextFileReader,分块处理可以避免将所有的文件载入内存,仅在使用的时候读入所需内容。数据的处理和清洗通常使用分块的方式处理,可以大大降低内存的使用,同时耗时要相对长一些。
import pandas as pd reader=pd.read_csv('pandas.csv', sep='|',chunksize=2) for chunksize_data in reader: print chunksize_data
输出
指定iterator=True 也可以返回一个可迭代对象TextFileReader。
import pandas as pd reader=pd.read_table('pandas.csv', sep='|', iterator=True) status=True while status: try: chunk=reader.get_chunk(2) print chunk except StopIteration: status=False
输出
除了通过分块避免一次性将全部内容加载至内存中,还可以尝试如下方式读取超大csv文件进行数据分析、处理。
转载请说明,若你对有帮助,点赞支持哦。
ode.js是一个可以使用JavaScript运行的服务器端环境,CSV是文本数据,使用逗号作为一列的分隔符,换行代码作为一个记录的分隔符。它是一种用于在其他应用程序中一般使用Excel数据的格式。本篇文章就来给大家介绍Node.js处理CSV文件的方法。
如何使用npm的csv包?
为了在Node.js中处理CSV,有一种方法可以使用npm csv模块。
npm csv模块的实际用途是转换JSON数据和csv以及读取和写入csv数据。
如何安装npm CSV模块?
命令:使用npm install csv安装csv模块。
npm install csv
Node.js处理CSV文件的具体示例
如何使用npm csv将Json数据转换为csv
代码如下
const csv=require('csv')
const input=[ [ "1", "2", "3", "4" ], [ "", "在线编程", "短期掌握", "线上学习" ] ];
csv.stringify(input, function(output){
console.log(output);
});
显示结果
[ '1', '2', '3', '4' ],
[ "", "在线编程", "短期掌握", "线上学习" ]
总结,以上就是本篇文章的全部内容了,更多精彩内容大家可以关注的其他相关教程栏目!!!
以上就是如何使用Node.js处理CSV文件的详细内容,更多请关注其它相关文章!
更多技巧请《转发 + 关注》哦!
*请认真填写需求信息,我们会在24小时内与您取得联系。