pandas read_csv读取大文件的Memory error问题
Posted 34fj
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pandas read_csv读取大文件的Memory error问题相关的知识,希望对你有一定的参考价值。
今天在读取一个超大csv文件的时候,遇到困难:首先使用office打不开然后在python中使用基本的pandas.read_csv打开文件时:MemoryError
最后查阅read_csv文档发现可以分块读取。
read_csv中有个参数chunksize,通过指定一个chunksize分块大小来读取文件
1.分块计算数量
from collections import Counter import pandas as pd size = 2 ** 10 counter = Counter() for chunk in pd.read_csv(‘file.csv‘, header=None, chunksize=size): counter.update([i[0] for i in chunk.values]) print(counter) ``` --- 大概输出如下: ``` Counter({100: 41, 101: 40, 102: 40, ... 150: 35}) ```
2.分块读取合并为一个list,list元素是dataframe,最后concat为完整dataframe
data = pd.read_csv(path+"dika_num_trainall.csv", sep=‘,‘, engine=‘python‘, iterator=True) loop = True chunkSize = 100000 chunks = [] while loop: try: chunk = data.get_chunk(chunkSize) chunks.append(chunk) except StopIteration: loop = False print("Iteration is stopped.") print(‘开始合并‘) df_train = pd.concat(chunks, ignore_index=True)
以上是关于pandas read_csv读取大文件的Memory error问题的主要内容,如果未能解决你的问题,请参考以下文章
pandas使用read_csv函数读取文件并解析日期数据列(parse dates)pandas使用read_csv函数读取文件并将缺失值转化为空字符串
pandas使用read_csv函数随机从文件中读取N行数据pandas使用read_csv函数读取空格分割的文件(space)自定义设置sep参数
pandas read_csv 修复列以读取数据中带有换行符的数据
pandas使用read_csv读取数据使用index_col参数移除Unnamed:0数据列pandas使用read_csv读取压缩格式文件
pandas使用read_csv函数读取文件时指定数据列的数据类型pandas使用read_csv函数读取文件时通过keep_default_na参数设置缺失值替换为空字符串