pandas Python系列对象是可变的,因此不能在查询方法中将其散列

时间:2018-08-16 13:31:00

标签: python pandas

我想跑步:

import pandas as pd
df_data = pd.DataFrame({'a':[1,20,None,40,50]})
df_data.query('a.isnull()')

并发生错误:

TypeError: 'Series' objects are mutable, thus they cannot be hashed

但是:

df_data.a.isnull()

完全没有错误, 为什么会这样呢? 你能帮我弄清楚为什么吗?

2 个答案:

答案 0 :(得分:2)

使用python引擎,或将np.array与默认的npexpr引擎一起使用。

df_data.query('a.isnull()', engine='python')

df_data.query('a.isnull().values')

(不太清楚为什么numexpr仍不能处理pd.Series

答案 1 :(得分:1)

您可以使用!=

df_data.query('a!=a')
Out[10]: 
    a
2 NaN

由于np.NaN不等于np.NaN