为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

呼唤远方 2019-06-12 21:26:04
如何用熊猫读取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__ = nameC:\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:在这方面有什么帮助吗?
查看完整描述

3 回答

?
千万里不及你

TA贡献1784条经验 获得超9个赞

分块不应该总是这个问题的第一要务。

1.由于重复的非数值数据或不需要的列,文件是否很大?

如果是这样的话,有时您可以看到大量的内存节省。按类别阅读列并通过读CSV usecols参数。

2.您的工作流程需要切片、操作、导出吗?

如果是这样,您可以使用dask.dataframe若要切片,请执行计算并迭代导出。Dask默默地执行分块操作,它还支持熊猫API的一个子集。

3.如果所有这些都失败了,请逐行通过块读取。

通过熊猫或通过CSV库作为最后的手段。


查看完整回答
反对 回复 2019-06-12
  • 3 回答
  • 0 关注
  • 671 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信