pandas python 大csv檔案讀部分資料的列,避免memoryerror
阿新 • • 發佈:2019-02-19
比如有一個挺大的檔案,用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了