查看: 1553|回复: 3

Pandas. Parser. CParserError: an error occurred when tag data.C error: line 3...

[复制链接]

10

主题

82

帖子

200

积分

中级会员

Rank: 3Rank: 3

积分
200
发表于 2018-9-18 18:23:06 | 显示全部楼层 |阅读模式
我正在尝试使用pandas来操作.csv文件,但是我收到此错误:
Pandas. Parser. CParserError: an error occurred when tag data.C error: line 3 is expected to have 2 fields, as shown in figure 12
我曾尝试阅读pandas文档,但一无所获。
我的代码很简单:
path = 'GOOG Key Ratios.csv'
#print(open(path).read())
data = pd.read_csv(path)
我该如何解决这个问题?我应该使用该csv模块还是其他语言?
回复

使用道具 举报

4

主题

11

帖子

39

积分

新手上路

Rank: 1

积分
39
发表于 2018-9-18 18:23:50 | 显示全部楼层
data = pd.read_csv('file1.csv', error_bad_lines=False)
回复

使用道具 举报

11

主题

80

帖子

199

积分

注册会员

Rank: 2

积分
199
发表于 2018-9-18 18:26:14 | 显示全部楼层
可能是因为数据中的分隔符。
要解决它,请尝试在调用时指定sep和/或header参数read_csv。例如,
df = pandas.read_csv(fileName, sep='delimiter', header=None)
在上面的代码中,sep定义您的分隔符并header=None告诉pandas您的源数据没有标题/列标题的行。因此文档说:“如果文件不包含标题行,那么你应该显式传递header = None”。在这种情况下,pandas会自动为每个字段{0,1,2,...}创建整数索引。
根据文档,分隔符应该不是问题。文档说“如果sep是None [未指定],将尝试自动确定这个。”
回复

使用道具 举报

10

主题

72

帖子

180

积分

注册会员

Rank: 2

积分
180
发表于 2018-9-18 18:26:57 | 显示全部楼层
解析器被文件的标题弄糊涂了。它读取第一行并推断该行的列数。但前两行不代表文件中的实际数据。
尝试一下 data = pd.read_csv(path, skiprows=2)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表