Python系列对象是可变的,因此它们不能在查询方法中进行散列

Python系列对象是可变的,因此它们不能在查询方法中进行散列,python,pandas,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 但是: 没有任何错误, 为什么会这样? 你能帮我找出原因吗?使用python引擎,或者使用带有默认npexpr引擎的np.array

我正试着跑:

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
但是:

没有任何错误, 为什么会这样? 你能帮我找出原因吗?

使用python引擎,或者使用带有默认npexpr引擎的np.array

不太清楚为什么numexpr不能处理pd.Series,尽管使用python引擎,或者使用带有默认npexpr引擎的np.array

不太清楚为什么numexpr不能处理pd.Series,尽管您可以使用它=

因为np.NaN不等于np.NaN

您可以使用=


由于np.NaN不等于np.NaN

关于pd.Series无法在任何地方使用insert进行处理的原因,最近一些使pandas结构不像numpy数据帧的ish更改可能是罪魁祸首。Numpy可能只是在转换过程中优雅地处理了它。在出错之前,我就遇到了一个错误:类型的对象不是Pandas.Dataframe。在这个过程中,pd.Series可能无法通过insert处理,无论它在哪里工作,最近的一些ish更改可能是罪魁祸首,这些更改使Pandas结构不太像numpy dataframes。Numpy可能只是在转换过程中优雅地处理了它。我在错误之前就遇到了错误:类型的对象不是熊猫。数据帧正在发生。尝试此操作时,我得到ValueError:unknown type对象。尝试此操作时,我得到ValueError:unknown type对象。
df_data.a.isnull()
df_data.query('a.isnull()', engine='python')
df_data.query('a.isnull().values')
df_data.query('a!=a')
Out[10]: 
    a
2 NaN