python - pandas read_csv 最后一列包含逗号

标签 python json csv pandas

所以我有一个 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/

相关文章:

javascript - 使用 jQuery 从 Ajax 响应构建表行(不使用静态 json 数据)

python - 将更新的 json dict 保存回文件后缩进被破坏

python - 将变量写入CSV行python

shell - 使用 gnu 并行处理带标题的 CSV 文件

C# 非常慢的 StreamReader

python - 我如何使用 NumpyArrayToRaster() 从 4 波段图像中提取 3 波段?

python - 我如何使用 % 在 Python 中将秒转换为分钟和秒

mysql - (泄漏检测)物联网数据通过 JSON 推送到数据库 (Mysql)

python - Linux 上的进度条

python - 在不破坏现有回调的情况下将额外的可选参数传递给回调