首页 > 解决方案 > 将 CSV 文件上传到 Pandas Dataframe 时标记数据时出错

问题描述

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

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

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 的正确代码是什么?

谢谢,

标签: pythonpandascsvdataframeout-of-memory

解决方案


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

Pandas 将 csv 读入 ram - 一个 8GB 的​​文件很容易耗尽它 - 尝试分块读取文件。看到这个答案。


推荐阅读