1. 程式人生 > >pandas python 大csv檔案讀部分資料的列,避免memoryerror

pandas python 大csv檔案讀部分資料的列,避免memoryerror

比如有一個挺大的檔案,用pd.read_csv來讀取時,會出現memoryerror的錯誤。但是實際上你只需要讀其中部分列的資料,然後把這些資料存進新的檔案。你可以這樣實現:

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import pandas as pd
from pandas import DataFrame as df

path=u'G:\\季風研究\\SZ\\SZ\\SZ.csv'    #檔案路徑
file=open(path, errors='ignore')    #這裡不忽略errors會報錯
data=pd.read_csv(file, usecols=['DDATETIME', 'OBTID', 'WD3SMAXDF', 'WD3SMAXDD', 'WD10MAXDF', 'WD10MAXDD'])   #usecols是想要讀取的列(其中的字串是檔案第一行的內容),那麼data中則只儲存這幾列的資料
data.to_csv(u'G:\\季風研究\\SZ\\SZ\\mod\\modified_SZ.csv')  #將所要資料存入新檔案

詳細可參考:pandas官方文件中關於read_csv的usecols的相關說明

此外,我之前是在32位的python上執行程式,它限制記憶體使用最大2G,後來我換成64位的python,就不會輕易出現memoryerror了