CParserError:标记数据时出错

时间:2016-05-29 02:25:56

标签: python csv pandas dataframe data-analysis

我在阅读csv文件时遇到一些麻烦

import pandas as pd

df = pd.read_csv('Data_Matches_tekha.csv', skiprows=2)

我得到了

  

pandas.io.common.CParserError:标记数据时出错。 C错误:第526行预计有1个字段,见5

当我将sep=None添加到df时,我收到了另一个错误

  

错误:行包含NULL字节

我尝试添加unicode='utf-8',我甚至尝试过使用CSV阅读器,但此文件无法正常使用

csv文件完全正常,我查了一下,我发现它没有错误

以下是我得到的错误:

3 个答案:

答案 0 :(得分:1)

在您的实际代码中,该行是:

>>> pandas.read_csv("Data_Matches_tekha.xlsx", sep=None)

您正在尝试阅读Excel文件,而不是纯文本CSV,这就是事情无效的原因。

Excel文件(xlsx)采用特殊的二进制格式,无法读取为简单的文本文件(如CSV文件)。

您需要将Excel文件转换为CSV文件(注意 - 如果您有多个工作表,每个工作表应转换为自己的csv文件),然后阅读这些文件。

您可以使用read_excel,也可以使用xlrd这样的库来读取Excel文件的二进制格式;有关详细信息,请参阅Reading/parsing Excel (xls) files with Python

答案 1 :(得分:1)

如果read_csv文件:

,请使用read_excel代替Excel
import pandas as pd

df = pd.read_excel("Data_Matches_tekha.xlsx")

答案 2 :(得分:0)

当我使用to_csv写一些数据然后在另一个脚本中读取它时,我遇到了同样的错误。我发现了一个简单的解决方案而没有通过pandas的读取功能,它是一个名为 Pickle 的包。

您可以在终端输入

下载
pip install pickle 

然后您可以用来编写数据(第一个)下面的代码

import pickle 

with open(path, 'wb') as output:
pickle.dump(variable_to_save, output)

最后使用

在另一个脚本中导入数据
import pickle 

with open(path, 'rb') as input:
data = pickle.load(input)

请注意,如果您想在读取保存的数据时使用与保存数据的版本不同的python版本,则可以在写入步骤中使用protocol=x使用x对应于旨在用于阅读的版本(2或3)。

我希望这可以有用。