У меня есть фрейм данных как
ent_id buy new_perc_buy sell new_perc_sell
123 0.116211962 0.116198415 0.496314325 0.496256466
124 0.007214061 0.00721322 0.153933545 0.1539156
125 0.003410283 0.003409886 0.499973272 0.499914987
126 0.231587543 0.231560545 0.699696021 0.699614452
127 0.056794334 0.056787713 0.235372057 0.235344618
128 0.130377754 0.130362555 0.187575903 0.187554036
129 0.998294858 0.99817848 0.917661563 0.917554585
130 0.208247701 0.208223424 0.575032323 0.574965287
, теперь мне нужно сопоставить buy с new_perc_buy (до 5 знаков после запятой) аналогично sell с new_perc_sell (до 5 знаков после запятой) с соответствием ent_id, и если он не соответствует установленному условию, он терпит неудачу
, поскольку я использую numpy .testing. assert_almost_equal
import numpy
numpy.testing.assert_almost_equal(df_ss['rnk_perc_buy'],df_ss['new_perc_rnk_perc_buy'], decimal=5, err_msg='false', verbose=True)
Я получаю эту ошибку
ValueError Traceback (most recent call last)
in () 1 import numpy ----> 2 numpy .testing.assert_almost_equal (df_ss ['rnk_perc_buy'], df_ss ['new_perc_rnk_perc_buy'], decimal = 5, err_msg = 'false', verbose = True) 3 # df_ss.head (10)
C: \ Program Files \ Anaconda3 \ lib \ site-packages \ numpy \ testing_private \ utils.py в assert_almost_equal (фактический, желаемый, десятичный, err_msg, подробный) 588 # проверяем, что оба являются nan, если есть nan, и проверяем на равенство 589 # в противном случае -> 590, если нет (гисфинит (желаемый) и гисфинит (фактический)): 591, если гиснан (желаемый) или гиснан (фактический): 592, если нет (гиснан (желаемый) и гисна n (фактическое)):
C: \ Program Files \ Anaconda3 \ lib \ site-packages \ pandas \ core \ generi c .py в ненулевое (собственное) 1477 def ненулевое значение (self): 1478 raise ValueError (-> 1479 f "Истинное значение {type (self). name } неоднозначно. "1480" Используйте a.empty, a.bool (), a.item (), a.any () или a.all (). "1481)
ValueError: Значение истинности Серии равно неоднозначно. Используйте a.empty, a.bool (), a.item (), a.any () или a.all ().
также там, где я получаю сообщение об ошибке, как показано ниже
AssertionError:
Arrays are not almost equal to 5 decimals for **ent_id 123**
ACTUAL: 0.116211962
DESIRED: 0.116198415