csv Pandas DataFrame读取跳过行XXX:预期X字段,锯Y

5fjcxozz  于 2023-04-18  发布在  其他
关注(0)|答案(2)|浏览(139)

我不知道我试图加载的csv文件有什么问题:
我收到如下错误消息:b'Skipping line 2120260: expected 6 fields, saw 8\n'
但是当我查看这些行时,它们看起来没问题。
第2,120,260行(失败):['user_000104\t 2005-09-12T06:25:50Z\t a019a8cf-2601-4a81-b3c3-7b279a873713\t Anne Clark\t 8f8e6bc0-c3c0-4062-875a-773a1de6206f\t Empty Me']
第9,000行(不失败):['user_000001\t 2008-06-15T17:28:31Z\t a3031680-c359-458f-a641-70ccbaec6a74\t Steve Reich\t 2991db42-3b19-4344-a340-605ac3fbd7e9\t Drumming: Part Iv']
如果有人想自己尝试一下,请下载:
http://www.dtic.upf.edu/~ocelma/MusicRecommendationDataset/lastfm-1K.html
运行:inpFile2 = pd.read_csv(fPath, sep='\t', error_bad_lines= False)
生成错误。并且:def checkRow(path,N): with open(path, 'r') as f: print("This is the line.") print(next(itertools.islice(csv.reader(f), N, None)))
查看错误行(传入文件路径和您感兴趣的行)。确保导入csv并导入itertools。

clj7thdc

clj7thdc1#

好吧,我设法弄清楚了。
解决方案是在read_csv命令中使用quoting=csv.QUOTE_NONE作为参数。inpFile = pd.read_csv(fPath, sep='\t', error_bad_lines= False,quoting=csv.QUOTE_NONE)
原因是其中一个字段中存在双引号,这会导致Pandas感到困惑,因此需要告诉它不要寻找字符串/引号。进行上述更改 * 似乎 * 已经加载了它。

sgtfey8w

sgtfey8w2#

如果你只是想“隐藏”行错误的警告,你可以使用参数warn_bad_lines=False,而不是默认值True,更多信息在这里:pandas.pydata.org/pandas-docs

相关问题