我有一个数据框,我试图运行一个df.query()
上简单地找到所有的值,其中列不为空。我在这里使用代理df,在这种情况下,试图找到animal
列,它不是空的(在这种情况下,它应该是全部)。两列都是对象
我的df看起来是这样的:
isin animal
0 red 5473
1 nan 8829
2 red 9382
3 blue 7738
我的查询如下:
df.query("animal.notnull()")
但是我得到以下错误:
TypeError: 'Series' objects are mutable, thus they cannot be hashed
我查看了animal
的唯一值和所有值,它们都是字符串值。
我不明白这个错误?
似乎是一个被称为#34251
的BUG。
我无法重现pandas 1.5.2
的问题:
print(df.query("animal.notnull()"))
isin animal
0 red 5473
1 nan 8829
2 red 9382
3 blue 7738
尝试将python
设置为引擎:
print(df.query("animal.notnull()", engine="python"))
否则,如果错误仍然存在,upgrade:
pip install --upgrade pandas