python - 如果与字典映射不匹配,如何从数据框行中删除值?
问题描述
我的数据框中有由数字组成的行(其中一些是 ID,但其他只是不相关的数字),我想创建一个名称与这些 ID 匹配的新列,但删除不相关的数字。
我有一本与它们匹配的字典,例如:
id_numbers = {"001" : "Matt", "002":"Chris", "003":"Jana"}
现在,我只是使用下面的代码(它很好地匹配了数字和名称),但我也复制了列中所有不相关的数字。如何仅将与字典中的名称匹配的数字复制到新列?
df['names'] = df['numbers'].replace(id_numbers )
之后,我还想从数字列中删除不在字典中的数字。非常感谢!
解决方案
尝试map
:
df['names'] = df['numbers'].map(id_numbers)
或使用:
df['names'] = df['numbers'].replace(list(id_numbers.keys()), list(id_numbers.values()))