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了

猜你喜欢

转载自blog.csdn.net/liuchengzimozigreat/article/details/81360098