我有一个tab分隔的flatfile,其中一列是JSON数据存储为字符串,例如
Col1 Col2 Col3
1491109818 2017-08-02 00:00:09.250 {"type":"Tipper"}
1491110071 2017-08-02 00:00:19.283 {"type":"HGV"}
1491110798 2017-08-02 00:00:39.283 {"type":"Tipper"}
1491110798 2017-08-02 00:00:39.283 \N
...
我要做的是将表作为pandas dataframe加载,对于col3,将数据更改为字符串,只包含type键中的信息。如果没有JSON或没有类型键的JSON,我想返回None。在
例如
^{pr2}$我能想到的唯一方法是使用iterrows,但是在处理大文件时,这是非常慢的。在
for index, row in df.iterrows():
try:
df.loc[index, 'Col3'] = json.loads(row['Col3'])['type']
except:
df.loc[index, 'Col3'] = None
有什么关于更快的方法的建议吗?在
使用
np.vectorize
和json.loads
请注意,决不建议使用裸
except
,因为您可能会无意中捕获和删除您无意中发现的错误。在^{pr2}$
相关问题 更多 >
编程相关推荐