首页 > 解决方案 > 从包含 JSON 的列中删除字符串

问题描述

我有以下数据框:

  details
0 {"id":123,"code":"","name":"abc123","email":"test1@gmail.com","status":"good"}
1 {"id":124,"code":"","name":"abc456","email":"test2@gmail.com","status":"bad"}

我希望删除此数据框中的每一行,数据类型当前是一个对象abc123abc456我试图转换为字符串和条带,并使用以下内容:

lambda x: x.lstrip('name"":""').rstrip('"",""email"":'))

但它没有捕捉到这些值。

预期的输出应该是一个只有代码值的数据框:

  code
0 abc123f
1 abc456

完成上述问题的最佳方法是什么?

非常感谢任何指导。

标签: pythonjsonpandasdataframe

解决方案


您可以尝试以下方法:

>>> df['code'] = df.pop('details').str['name']
>>> df
     code
0  abc123
1  abc456
>>> 

或者如果字典是字符串:

>>> df['code'] = df.pop('details').str.extract(r"'name': '(.*?)'")
>>> df
     code
0  abc123
1  abc456
>>> 

推荐阅读