【问题标题】:MemoryError: Unable to allocate array with shape (118, 840983) and data type float64MemoryError: 无法分配形状 (118, 840983) 和数据类型 float64 的数组
【发布时间】:2019-11-18 08:58:44
【问题描述】:

我收到以下错误:

MemoryError: Unable to allocate array with shape (118, 840983) and data type float64

每当我运行 python pandas.readcsv() 函数来读取文本文件时,在我的 python 代码中。这是为什么呢??

这是我的代码:

import pandas as pd
df = pd.read_csv("LANGEVIN_DATA.txt", delim_whitespace=True)

【问题讨论】:

  • 错误信息让你感到困惑的是什么?在我看来,这似乎意味着内存中没有足够的空间来一次保存整个 csv。
  • 118 x 840983 对于 8 字节的 float64 数据应小于 1GB;你的系统内存有多大?
  • @MKhalil 很有趣。你的 python 是办公室里的 32 位进程吗?尝试运行以下。 import platform; platform.architecture()
  • @MKhalil 在这种情况下,我的建议是,让您的办公室安装和使用 python 64 位。 32 位具有严格的内存限制。您的公司遭受损失。

标签: python pandas


【解决方案1】:

MemoryError 表示文件太大,无法一次读取csv,需要使用chunksize 来避免错误。

就像:

import pandas as pd
df = pd.read_csv("LANGEVIN_DATA.txt", delim_whitespace=True, chunksize=1000)

您可以阅读官方文档以获得更多帮助。

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html

【讨论】:

    猜你喜欢
    • 2020-12-02
    • 2021-03-05
    • 1970-01-01
    • 2021-01-04
    • 2020-01-14
    • 2023-01-23
    • 1970-01-01
    • 2020-08-30
    • 1970-01-01
    相关资源
    最近更新 更多