首页 > 解决方案 > 映射列值时忽略缺失值

问题描述

我有一个名为subgroup的列,其值用逗号分隔。我有一本包含键和值的字典。我已经安排了一个脚本自动运行。但是如果字典中不存在subgroup中的值,则该函数将崩溃并停止。如果我的字典中不存在*子组的值,我该如何忽略它?

在此处输入图像描述

这里列子组的值是 A、B、C、D、E,但字典的键值是 A、B、C。我想忽略 D,E 而不会引发错误。我怎样才能做到这一点?下面是我写的代码

mapping_dict = df.set_index('KEY')['VALUES'].to_dict()
df2_values = [v.split(',') for v in df_2['subgroup']]
df_2['subgroup'] = pd.Series([','.join([mapping_dict[v] for v in values]) for values in df2_values])

如何更新此代码以避免缺失值?

标签: pythonpandasdictionarymapping

解决方案


也许尝试:

df_2['subgroup'] = pd.Series([','.join([mapping_dict[v] for v in values]) for values in df2_values if values in mapping_dict])

因此,它将仅使用映射字典中存在的 df2_values 中的值


推荐阅读