所以我有一个 csv 数据集,按照我的书格式是正确的,我正在尝试让 pandas
包正确加载它。 header 由 5 列名称组成,但最后一列由包含未转义逗号的 JSON 对象组成。例如
A,B,C,D,E
1,2,3,4,{K1:V1,K2:V2}
我正在使用一个简单的 training = pd.read_csv('data/training.dat')
但是,pandas 显然将额外的逗号误解为新的未标记列,我收到如下错误:
CParserError: Error tokenizing data. C error: Expected 75 fields in line 3, saw 84
我正在尝试浏览文档,但显然失败了,有谁知道如何正确配置 pd.read_csv
命令以正确解析它?
我想另一种方法是我可以拼凑一个脚本,使用它们的键的联合作为列来展平 JSON 对象。
最佳答案
如果您可以将 {
替换为 "{
,将 }
替换为 }"
,它可以通过以下方式正确读取:pd.read_csv('data/training.dat',quotechar='"',skipinitialspace=True)
编辑:
或者寻求基于正则表达式的解决方案:
In [205]:
print pd.read_csv('a.data',sep=",(?![^{]*\})", header=None)
0 1 2 3 4
0 A B C D E
1 1 2 3 4 {K1:V1,K2:V2}
[2 rows x 5 columns]
关于python - pandas read_csv 最后一列包含逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24091356/