如何用熊猫读取6GB的csv文件

如何用熊猫读取6GB的csv文件

我正在尝试读取一个大型CSV文件(Aprox)。在熊猫中,我得到了以下内存错误:


MemoryError                               Traceback (most recent call last)

<ipython-input-58-67a72687871b> in <module>()

----> 1 data=pd.read_csv('aphro.csv',sep=';')


C:\Python27\lib\site-packages\pandas\io\parsers.pyc in parser_f(filepath_or_buffer, sep, dialect, compression, doublequote, escapechar, quotechar, quoting, skipinitialspace, lineterminator, header, index_col, names, prefix, skiprows, skipfooter, skip_footer, na_values, na_fvalues, true_values, false_values, delimiter, converters, dtype, usecols, engine, delim_whitespace, as_recarray, na_filter, compact_ints, use_unsigned, low_memory, buffer_lines, warn_bad_lines, error_bad_lines, keep_default_na, thousands, comment, decimal, parse_dates, keep_date_col, dayfirst, date_parser, memory_map, nrows, iterator, chunksize, verbose, encoding, squeeze, mangle_dupe_cols, tupleize_cols, infer_datetime_format)

    450                     infer_datetime_format=infer_datetime_format)

    451 

--> 452         return _read(filepath_or_buffer, kwds)

    453 

    454     parser_f.__name__ = name


C:\Python27\lib\site-packages\pandas\io\parsers.pyc in _read(filepath_or_buffer, kwds)

    242         return parser

    243 

--> 244     return parser.read()

    245 

    246 _parser_defaults = {


C:\Python27\lib\site-packages\pandas\io\parsers.pyc in read(self, nrows)

    693                 raise ValueError('skip_footer not supported for iteration')

    694 

--> 695         ret = self._engine.read(nrows)

    696 

    697         if self.options.get('as_recarray'):


C:\Python27\lib\site-packages\pandas\io\parsers.pyc in read(self, nrows)

   1137 

   1138         try:

-> 1139             data = self._reader.read(nrows)

   1140         except StopIteration:

在这方面有什么帮助吗?


呼唤远方
浏览 672回答 3
3回答

千万里不及你

分块不应该总是这个问题的第一要务。1.由于重复的非数值数据或不需要的列,文件是否很大?如果是这样的话,有时您可以看到大量的内存节省。按类别阅读列并通过读CSV&nbsp;usecols参数。2.您的工作流程需要切片、操作、导出吗?如果是这样,您可以使用dask.dataframe若要切片,请执行计算并迭代导出。Dask默默地执行分块操作,它还支持熊猫API的一个子集。3.如果所有这些都失败了,请逐行通过块读取。块通过熊猫或通过CSV库作为最后的手段。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python