首页 > 解决方案 > 如果与字典映射不匹配,如何从数据框行中删除值?

问题描述

我的数据框中有由数字组成的行(其中一些是 ID,但其他只是不相关的数字),我想创建一个名称与这些 ID 匹配的新列,但删除不相关的数字。

我有一本与它们匹配的字典,例如:

id_numbers = {"001" : "Matt", "002":"Chris", "003":"Jana"}

现在,我只是使用下面的代码(它很好地匹配了数字和名称),但我也复制了列中所有不相关的数字。如何仅将与字典中的名称匹配的数字复制到新列?

df['names'] = df['numbers'].replace(id_numbers )

之后,我还想从数字列中删除不在字典中的数字。非常感谢!

标签: pythondataframedictionary

解决方案


尝试map

df['names'] = df['numbers'].map(id_numbers)

或使用:

df['names'] = df['numbers'].replace(list(id_numbers.keys()), list(id_numbers.values()))

推荐阅读