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

标签 python dataframe dictionary

我的数据框中有一行由数字组成(其中一些是 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()))

关于python - 如果值与字典映射不匹配,如何从数据框行中删除它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57035983/

相关文章:

python - virtualenv --no-site-packages 对我不起作用

python - 如何比较 DataFrame 的 3 列,Python 3.6

python - 从另一个 DataFrame 的列中的 JSON URL 生成 Dataframe

python - 如何实现通过嵌套字典查找关键路径的函数 max_leaf_path(d) ?

Python CSV - 需要根据一个键对值进行分组和计算

python - `pyyaml` 可以 't parse ` pydantic ` object if ` Typing` 模块被使用

python - Python 中的相对导入问题

r - 按列开始和结束转换数据帧 R

python - 将嵌套字典中列表的元素加在一起 ​​- python

Java:在 map 中查找空键: