Обновление
Обойти это проще, не нужно удалять пакет numexpr
, просто используйте другой механизм синтаксического анализа для выражения:
df['y'] = df.eval('@around(x,1)', engine = 'python')
Первый ответ
Мне удалось найти обходной путь, и я также выяснил, где проблема, кажется. Сначала я обновил conda
сам и все пакеты (включая python
до 3.7.0, но я не верю, что версия Python актуальна). После этого:
Шаг 1: удалить pandas
и numpy
conda remove pandas numpy
The following packages will be REMOVED:
bokeh: 0.13.0-py37_0
mkl_fft: 1.0.4-py37h1e22a9b_1
mkl_random: 1.0.1-py37h77b88f5_1
numba: 0.39.0-py37h830ac7b_0
numexpr: 2.6.8-py37h9ef55f4_0
numpy: 1.15.1-py37ha559c80_0
pandas: 0.23.4-py37h830ac7b_0
scikit-learn: 0.19.1-py37hae9bb9f_0
scipy: 1.1.0-py37h4f6bf74_1
Шаг 2: переустановить только pandas
и numpy
conda install pandas numpy
The following NEW packages will be INSTALLED:
mkl_fft: 1.0.4-py37h1e22a9b_1
mkl_random: 1.0.1-py37h77b88f5_1
numpy: 1.15.1-py37ha559c80_0
pandas: 0.23.4-py37h830ac7b_0
После шага 2 код работал должным образом, поэтому проблема должна заключаться в удалении одного из других пакетов.
Шаг 3: добавьте каждый из пакетов, первоначально удаленных один за другим (bokeh, numba, Numberxpr, scikit-learn, scipy), и каждый раз проверяйте, работает ли код. После установки numexpr
код не удался, так что именно в этом проблема. Не уверен, как вы могли бы добавить numpexpr
обратно - я пробовал некоторые старые версии, но каждый раз код терпел неудачу