如果值与字典映射不匹配,如何从数据框行中删除该值?

时间:2019-07-15 08:31:46

标签: python dataframe dictionary

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

我有一个与之匹配的字典,例如:

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

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

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

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

1 个答案:

答案 0 :(得分:2)

尝试map

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

或使用:

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