Pandas read_csv错误的字段数,但目视检查看起来很好

时间:2015-07-09 16:05:09

标签: mysql pandas

我正在尝试加载一个大的csv文件,3,715,259行。 我自己创建了这个文件,有9个字段用逗号分隔。

这是错误:

df = pd.read_csv("avaya_inventory_rev2.csv", error_bad_lines=False)

Skipping line 2924525: expected 9 fields, saw 11
Skipping line 2924526: expected 9 fields, saw 10
Skipping line 2924527: expected 9 fields, saw 10
Skipping line 2924528: expected 9 fields, saw 10

这对我没有意义,我使用以下方法检查了违规行:

sed -n "2924524,2924525p" infile.csv

我无法列出输出,因为它们包含客户端的专有信息。我会尝试合成一个有意义的替代品。

第2924524行和第2924525行看起来与我有相同数量的字段。

另外,我能够将同一个文件加载到mySQL表中而没有错误。

create table Inventory (path varchar (255), isText int, ext varchar(5), type varchar(100), size int, sloc int, comments int, blank int, tot_lines int);

我对mySQL了解不足以了解为什么这可能或可能不是一个有效的测试,以及为什么pandas会因加载相同的文件而产生不同的结果。

TIA!

'''更新''':我试着用engine ='python'阅读:

Error: new-line character seen in unquoted field - do you need to open the file in universal-newline mode?

当我创建这个csv时,我正在使用我编写的shell脚本。我使用重定向>>将行添加到文件中

我尝试了建议的解决方法:

input = open(input, 'rU')
df.read_csv(input, engine='python')

回到同样的错误:

ValueError: Expected 9 fields in line 5157, saw 11

我猜这与我的csv创建脚本以及我如何处理有关 引用那个。我不知道如何进一步调查这一点。

我在vim中打开了csv输入文件,在第5157行打开了一个^M谷歌称它为Windows CR。

好的......我离我更近了,虽然我有点怀疑这样的事情并在csv输入上使用了dos2unix

我使用vim删除了^M,并重新运行了同样的错误 11个领域。但是,我现在可以看到我刚才看到的11个领域 9.有v可能是某种Windows持有吗?

摘要:有人认为用fobar.sh,v

命名文件很可爱

所以我的探查器并没有搞砸它只是一个名字怪异......加上来自窗口的随机\ cr \ lf偷偷进来....

干杯

0 个答案:

没有答案