資源鏈接:han-link.cn/4240.html
#妙筆生花創(chuàng)作挑戰(zhàn)#
前使用Python讀取超大CSV文件時(shí),出現(xiàn)MemoryError錯(cuò)誤,甚至死機(jī)。。。嘔心瀝血潛心研究后,發(fā)現(xiàn)使用pandas的read_csv模塊通過分塊讀取,可以完美解決針對(duì)超大CSV文件進(jìn)行數(shù)據(jù)分析處理時(shí)的內(nèi)存不足問題,接下來(lái)與大家分享一下。
Anaconda是一個(gè)開源的Python發(fā)行版本,其包含了conda、Python、numpy、pandas等180多個(gè)科學(xué)包及其依賴項(xiàng)。建議直接安裝Anaconda2 或 Anaconda3 ,最好裝64位。
下載地址如下:
https://www.anaconda.com/
read_csv官方文檔鏈接:
http://pandas.pydata.org/pandas-docs/stable/io.html#io-read-csv-table
從官方文檔中我們注意到chunksize 、iterator兩個(gè)參數(shù),下面我們就這兩個(gè)參數(shù)做詳細(xì)介紹 。
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中有個(gè)參數(shù)chunksize,通過指定一個(gè)chunksize分塊大小來(lái)讀取文件,返回的是一個(gè)可迭代的對(duì)象TextFileReader,分塊處理可以避免將所有的文件載入內(nèi)存,僅在使用的時(shí)候讀入所需內(nèi)容。數(shù)據(jù)的處理和清洗通常使用分塊的方式處理,可以大大降低內(nèi)存的使用,同時(shí)耗時(shí)要相對(duì)長(zhǎng)一些。
import pandas as pd reader=pd.read_csv('pandas.csv', sep='|',chunksize=2) for chunksize_data in reader: print chunksize_data
輸出
指定iterator=True 也可以返回一個(gè)可迭代對(duì)象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
輸出
除了通過分塊避免一次性將全部?jī)?nèi)容加載至內(nèi)存中,還可以嘗試如下方式讀取超大csv文件進(jìn)行數(shù)據(jù)分析、處理。
轉(zhuǎn)載請(qǐng)說明,若你對(duì)有幫助,點(diǎn)贊支持哦。
ode.js是一個(gè)可以使用JavaScript運(yùn)行的服務(wù)器端環(huán)境,CSV是文本數(shù)據(jù),使用逗號(hào)作為一列的分隔符,換行代碼作為一個(gè)記錄的分隔符。它是一種用于在其他應(yīng)用程序中一般使用Excel數(shù)據(jù)的格式。本篇文章就來(lái)給大家介紹Node.js處理CSV文件的方法。
如何使用npm的csv包?
為了在Node.js中處理CSV,有一種方法可以使用npm csv模塊。
npm csv模塊的實(shí)際用途是轉(zhuǎn)換JSON數(shù)據(jù)和csv以及讀取和寫入csv數(shù)據(jù)。
如何安裝npm CSV模塊?
命令:使用npm install csv安裝csv模塊。
npm install csv
Node.js處理CSV文件的具體示例
如何使用npm csv將Json數(shù)據(jù)轉(zhuǎn)換為csv
代碼如下
const csv=require('csv')
const input=[ [ "1", "2", "3", "4" ], [ "", "在線編程", "短期掌握", "線上學(xué)習(xí)" ] ];
csv.stringify(input, function(output){
console.log(output);
});
顯示結(jié)果
[ '1', '2', '3', '4' ],
[ "", "在線編程", "短期掌握", "線上學(xué)習(xí)" ]
總結(jié),以上就是本篇文章的全部?jī)?nèi)容了,更多精彩內(nèi)容大家可以關(guān)注的其他相關(guān)教程欄目!!!
以上就是如何使用Node.js處理CSV文件的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注其它相關(guān)文章!
更多技巧請(qǐng)《轉(zhuǎn)發(fā) + 關(guān)注》哦!
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。