首页 > 解决方案 > 如何使用字典过滤数据框

问题描述

假设我有一个这样的数据框和字典:

df = pd.DataFrame({"letters": ["a","b","c","b","c"], "numbers": [1,2,3,1,2]})
correct_mapping={"a":1,"b":2,"c":3}

我想过滤没有正确映射的行。

我试过这个,但它打破了:

df[correct_mapping[df["letters"]] != df["numbers"]]
TypeError: 'Series' objects are mutable, thus they cannot be hashed

任何帮助,将不胜感激。

预期输出:

  letters  numbers
3       b        1
4       c        2

标签: pythonpandas

解决方案


比较map

df[df['letters'].map(correct_mapping) != df['numbers']]                                                                                   
  letters  numbers
3       b        1
4       c        2

推荐阅读