【发布时间】:2022-01-13 17:21:21
【问题描述】:
我遇到了一个问题,当我在 pandas 查询方法中使用 Series.str.len() 时,实际上我的某些环境不支持 Series.str 的所有功能,但在其他环境中工作,所有这些envs 具有几乎相同版本的 pandas 和 numpy。 (我确信 Series.str.xxxxx 之前可以在我所有的环境中工作)
Env1
Python 3.9.7
numpy==1.21.4
熊猫==1.3.4
当我运行pd.DataFrame(columns=['core_text']).query("core_text.str.len()>1") 时,它引发了
Traceback(最近一次调用最后一次): 文件“”,第 1 行,在 查询中的文件“/Users/huhon/miniconda3/envs/venv_dev/lib/python3.9/site-packages/pandas/core/frame.py”,第 4060 行 res = self.eval(expr, **kwargs) 文件“/Users/huhon/miniconda3/envs/venv_dev/lib/python3.9/site-packages/pandas/core/frame.py”,第 4191 行,在 eval return _eval(expr, inplace=inplace, **kwargs) 文件“/Users/huhon/miniconda3/envs/venv_dev/lib/python3.9/site-packages/pandas/core/computation/eval.py”,第 353 行,在 eval ret = eng_inst.evaluate() 文件“/Users/huhon/miniconda3/envs/venv_dev/lib/python3.9/site-packages/pandas/core/computation/engines.py”,第 80 行,在评估中 res = self._evaluate() _evaluate 中的文件“/Users/huhon/miniconda3/envs/venv_dev/lib/python3.9/site-packages/pandas/core/computation/engines.py”,第 120 行 _check_ne_builtin_clash(self.expr) _check_ne_builtin_clash 中的文件“/Users/huhon/miniconda3/envs/venv_dev/lib/python3.9/site-packages/pandas/core/computation/engines.py”,第 36 行 名称 = expr.names 文件“/Users/huhon/miniconda3/envs/venv_dev/lib/python3.9/site-packages/pandas/core/computation/expr.py”,第 834 行,名称 返回frozenset(com.flatten(self.terms)中的term.name) TypeError: unhashable type: 'numpy.ndarray'
Env2
Python 3.9.9
numpy==1.21.4
熊猫==1.3.4
完美运行。
有人可以帮忙吗?提前致谢!
洪
【问题讨论】:
-
您能否检查一下 1)
numexpr是否已安装 2) 请检查每个 env 中的版本? -
你的数据是什么样的?
-
@Corralien 是的,它是 numexpr!在我卸载 numexpr 后它现在可以工作了,非常感谢!