Использование отрицательных чисел в выражении pandas.DataFrame.query () - PullRequest
0 голосов
/ 18 мая 2018

Я пытаюсь использовать функцию pandas.DataFrame.query () следующим образом:

expression_string = 'ColumnName<(-1000)'
output_dataframe = dataframe.query(expression_string)

Код работает с положительными числами, но когда отрицательные числа передаются в строку, как указано выше, он возвращает следующую ошибку:

AttributeError: 'UnaryOp' object has no attribute 'value'

Есть предложения по использованию отрицательных чисел в выражениях запроса () DataFrame? Спасибо !!

1 Ответ

0 голосов
/ 18 мая 2018

Я могу воспроизвести эту ошибку на pandas v0.20.3 с конкретными типами данных;например, np.float32.Обходной путь должен быть приведен явно как float.

Это известная ошибка: DataFrame.eval ошибки с AttributeError: 'UnaryOp'

df = pd.DataFrame({'A': [-3.0, -2.5, -1.5, 3.0]}, dtype=np.float32)

x = 'A>(-1)'

# AttributeError:
res = df.query(x)

# Success:
df['A'] = df['A'].astype(float)
res = df.query(x)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...