我环顾四周,但处理这个错误的其他答案都没有帮助。我试图加载一个csv文件,它在前几行中有一些垃圾,数据从第4行开始。使用:
data = pd.DataFrame.from_csv('GRs151_1.CSV', header = 4)
我明白了:
CParserError: Error tokenizing data. C error: Expected 1 fields in line 9, saw 16
奇怪的是,据我所知,违规行没有多余的数据或任何东西。作为测试我做了:
with open('GRs151_1.CSV', 'r') as f:
i = 0
for line in f:
if i < 20:
print(i)
try:
a = eval(line)
print(a)
except:
print('error happened')
i += 1
输出所有行的预期结果,包括第9行:
0
error happened
1
error happened
2
error happened
3
error happened
4
error happened
5
(0, 0)
6
(1, 0)
7
(2, 0)
8
(3, 0)
9
(4, 0)
10
(5, 0)
11
(6, 0)
12
(7, 0)
13
(8, 0)
14
(9, 0)
15
(10, 0)
16
(11, 0)
17
(12, 0)
18
(13, 1)
19
(14, 0)
当我尝试:
data = pd.read_csv('GRs151_1.CSV',header = 4, usecols = (0, 1))
错误现在是:
CParserError: Error tokenizing data. C error: Buffer overflow caught - possible malformed input file.
除了编写一个手动加载文件并放弃from_csv和read_csv之外,还不确定从何处开始。
答案 0 :(得分:0)
如果没有看到文件的内容,很难回答你的问题。但是,您可以尝试通过使用像Notepad ++这样的加强文本编辑器来查看.csv文件来修复您的问题,以查看是否有任何隐藏的空白字符,或其他可能为您搞砸的粗糙字符。如果您是hacky修复程序的粉丝,您可以使用编辑器删除有问题的字符,然后保存。也可以摆脱那些讨厌的前四行。 :)