在 Pandas Dataframe 列中的嵌套字典中搜索和替换

Posted

技术标签:

【中文标题】在 Pandas Dataframe 列中的嵌套字典中搜索和替换【英文标题】:Searching and replacing in nested dictionary in a Pandas Dataframe column 【发布时间】:2018-11-01 10:35:33 【问题描述】:

遇到一些棘手的情况。 Pandas 数据框df 包含一个列col,其中包含嵌套字典作为值,如下所示:

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

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

我尝试在该列上应用.str.contains () 并在该列上使用replace () 函数,但似乎该技巧不适用于将字典作为值。可以请你给我指路吗?

【问题讨论】:

您能否发布上面示例的输出结果? 我在一个列中搜索“D104”,输出是“D104”而不是所有包含“D104”的字符串 【参考方案1】:

如果字典具有相同的结构,您可以将它们split 分成不同的列,然后使用它们。

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

【讨论】:

以上是关于在 Pandas Dataframe 列中的嵌套字典中搜索和替换的主要内容,如果未能解决你的问题,请参考以下文章

将字典嵌套在另一个字典中,按 Pandas Dataframe 中的值分组

Pandas 从应用函数返回 DataFrame?

pandas DataFrame 列中的布尔运算

检查 Pandas DataFrame 列中的字符串是不是在字符串列表中

如何根据有序列表替换pandas dataframe列中的元素?

pandas将dataframe数据列中的年月日列组合成单一的日期数据列实战