【发布时间】:2017-02-13 22:00:25
【问题描述】:
我收到了一个 CSV 文件,其中 , 是用于分隔字段的分隔符,但不幸的是附加为表示小数点的符号(德语符号)。
因此,某些行将具有不同的列数。奇怪的是,excel会很好地解析/读取文件。是否也可以在熊猫中读取此类文件?到目前为止,我只得到了类似于
Error tokenizing data. C error: Expected 97 fields in line 3, saw 98
编辑
这是一个最小的例子:
pd.read_csv(os.path.expanduser('~/Downloads/foo.csv'), sep=',', decimal=',')
带有~/Downloads/foo.csv的文件内容为
first, number, third
some, 1, other
foo, 1.5, bar
baz, 1,5, some
当我在 R 中加载数据时
See spec(...) for full column specifications.
Warnung: 1538 parsing failures.
row col expected actual
1 -- 93 columns 97 columns
2 -- 93 columns 98 columns
3 -- 93 columns 97 columns
4 -- 93 columns 102 columns
5 -- 93 columns 99 columns
pandas有这种放纵模式吗?
【问题讨论】:
-
你能发布一个可重现的样本数据集吗?
-
完成。请查看编辑。
-
每行只有一个可能受影响的列,这是对数据的准确表示吗?
-
很遗憾没有。它可能是多个。
-
在您的示例数据中,每个逗号后面都有一个空格作为分隔符,但对于数值没有空格。你的文件真的是这样吗?如果是这样,您应该可以使用
sep=',\s'之类的内容阅读它。
标签: python csv pandas separator malformed