pandas TypeError:'Series'对象是可变的,因此无法为简单pd.query()杂凑它们

n3h0vuf2  于 2022-12-09  发布在  其他
关注(0)|答案(1)|浏览(113)

我有一个 Dataframe ,我试图在上面运行一个df.query()来简单地查找列不为空的所有值。我在这里使用了一个代理df,并且在这个例子中试图查找不为空的animal列(在这个例子中它应该是all)。两个列都是对象。
我的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的唯一值和所有值,它们都是字符串值。
我不明白的错误?

3mpgtkmj

3mpgtkmj1#

看起来像是#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"))

否则,如果错误仍然存在,请 * 升级 *:

pip install --upgrade pandas

相关问题