有一些棘手的情况。 Pandas数据框df包含列col,该列具有嵌套字典作为值,如下所示:

{'code': 'D104',
  'description': 'Error Occured',
  'id': '5451235d',
  'root_cause': 'Brokage'}


我需要做的是查找字符串中某些代码的出现并用它替换整个字符串,在上面的示例中,它将搜索'D104',而所有字符串将只是'D104'而不是dict。

我试图在该列上应用.str.contains ()并在该列上使用replace ()函数,但是似乎技巧不适合将字典用作值。你能帮我指路吗?

最佳答案

如果词典具有相同的结构,则可以将它们split分成单独的列,然后使用它们。

codes = df[col].apply(pd.Series)['code']
# add `codes` to `df` or lookup 'D104' in codes
...

09-03 18:02