TypeError:'Series'对象是可变的,因此它们不能为简单的pd.query()进行哈希处理



我有一个数据框,我试图运行一个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

最新更新