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

Python 如果数据帧行与字典映射不匹配,如何从中删除该值?,python,dataframe,dictionary,Python,Dataframe,Dictionary,我的数据框中有一行是由数字组成的(其中一些是ID,但另一些只是不相关的数字),我想创建一个新列,其名称与这些ID匹配,但删除不相关的数字 我有一本与之匹配的词典,例如: id_numbers = {"001" : "Matt", "002":"Chris", "003":"Jana"} 现在,我只使用下面的代码(与数字和名称很匹配),但我也复制了列中所有不相关的数字。如何仅将与词典中的名称匹配的数字复制到新列 df['names'] = df['numbers'].replace(id_nu

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

我有一本与之匹配的词典,例如:

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

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

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

之后,我还想从数字列中删除字典中没有的数字。多谢各位

试试看:

或使用:

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

哇,太酷了,
当arg是一个字典时,字典中没有的系列值(作为键)被转换成NaN
,完美。@Adam.Er8 Yeah:-)@Adam.Er8每个人每天都学习新东西,
替换
我从jezrael学到的
df['names'] = df['numbers'].replace(list(id_numbers.keys()), list(id_numbers.values()))