首页 > 解决方案 > read_csv 在某些列中跳过分隔符

问题描述

我有一个格式不正确的 json 文件。我正在阅读它

mydata=pd.read_csv(afilename,header=0,usecols=[0,1,
                                                  4,5,
                                                  6,7,
                                                  8,9], 
                                         names=['ID', 'event',
                                                'a1','a2',
                                                'a3','a4',
                                                'a5','a6'])

正确读取第 1 列和第 0 列。但是,我的 csv 文件的以下列可能格式不正确并包含类似

 '{Foo={"name":"bar",quantity:1.0,quantity_type:"baz"}, Fuu={"name":"barbar" '

其中包括分隔符',',不幸的是在其他地方也使用了分隔符,并导致额外的拆分。

我事先不知道','会有多少,所以每次我更改我的usecols/names列表以接收由于额外的分隔符而被拆分的列片段时,我都会收到错误,因为列数不正确。

标签: pythonpandascsv

解决方案


由于您正在读取 JSON 文件,因此您应该使用read_json方法而不是 read_csv。如果您的 JSON 格式正确,这将起作用。

例如:

mydata = pd.read_json(afilename, orient='records')

推荐阅读