【问题标题】:Error tokenizing data while uploading CSV file into Pandas Dataframe将 CSV 文件上传到 Pandas Dataframe 时标记数据时出错
【发布时间】:2019-01-04 15:55:06
【问题描述】:

我有一个 8GB 的​​ CSV 文件,其中包含有关在法国创建的公司的信息。 当我尝试使用 pandas.read_csv 在 Python 中上传它时,我得到了各种类型的错误;我认为这是导致问题的 3 个因素的组合:

  • 文件大小 (8GB)
  • 单元格中的法语字符(如“é”)
  • 这个 CSV 文件的组织方式类似于 Excel 文件;字段按列分隔,就像 XLS 文件一样

当我尝试使用以下方式导入文件时:

import pandas as pd
df = pd.read_csv(r'C:\..\data.csv')

我收到以下错误:OSError: Initializing from file failed

然后,为了消除大小问题,我复制文件 (data.csv) 并粘贴它,只保留前 25 行 (data2.csv)。这是一个更轻的文件,以消除大小问题:

df = pd.read_csv(r'C:\..\data2.csv')

我得到同样的 OSError: Initializing from file failed 错误。

经过一番研究,我尝试使用 Data2.csv

编写以下代码
df = pd.read_csv(r'C:\..\data2.csv', sep="\t", encoding="latin")

这一次,导入成功,但格式很奇怪,像这样:https://imgur.com/a/y6WJHC5。所有字段都在同一列中。

因此,即使消除了大小问题,它也无法正确读取 csv 文件。而且,我仍然需要使用主文件 Data.csv。所以我在初始文件(data.csv)上尝试了相同的代码:

df = pd.read_csv(r'C:\..\data.csv', sep="\t", encoding="latin")

我得到:ParserError:错误标记数据。 C 错误:内存不足

正确读取此 data.csv 的正确代码是什么?

谢谢,

【问题讨论】:

  • 您可以添加 CSV 文件的前几行吗?

标签: python pandas csv dataframe out-of-memory


【解决方案1】:

从您的图像看来,文件是用分号 (;) 分隔的。尝试使用“;”作为 read_csv 函数中的 sep。

Pandas 将 csv 读入 ram - 一个 8GB 的​​文件很容易耗尽它 - 尝试分块读取文件。 See this answer.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-14
    • 2016-09-22
    • 1970-01-01
    • 1970-01-01
    • 2014-01-21
    • 2020-02-03
    • 2020-07-13
    • 2020-06-20
    相关资源
    最近更新 更多