我试图使用熊猫操作.csv文件,但我得到这个错误:

pandas.parser.CParserError:标记数据错误。C错误:第3行有2个字段,见12

我试着读过熊猫的文件,但一无所获。

我的代码很简单:

path = 'GOOG Key Ratios.csv'
#print(open(path).read())
data = pd.read_csv(path)

我该如何解决这个问题?我应该使用csv模块还是其他语言?

文件来自晨星公司


当前回答

我有一个已有行号的数据集,我使用index_col:

pd.read_csv('train.csv', index_col=0)

其他回答

有时候问题不在于如何使用python,而在于如何处理原始数据。 我得到了这个错误信息

Error tokenizing data. C error: Expected 18 fields in line 72, saw 19.

结果发现,在列描述中有时会有逗号。这意味着需要清理CSV文件或使用另一个分隔符。

虽然这个问题并非如此,但压缩数据也可能出现此错误。显式地设置kwarg压缩值解决了我的问题。

result = pandas.read_csv(data_source, compression='gzip')

对于那些在linux操作系统上使用Python 3有类似问题的人。

pandas.errors.ParserError: Error tokenizing data. C error: Calling
read(nbytes) on source failed. Try engine='python'.

试一试:

df.read_csv('file.csv', encoding='utf8', engine='python')

问题出在分隔符上。找出在数据中使用的分隔符类型,并如下所示指定它:

data = pd.read_csv('some_data.csv', sep='\t')

有时单元格中有一个逗号“,”。因此,熊猫不能读它。 尝试使用“;”分隔符

df = pd.read_csv(r'yourpath', delimiter=";")