Как мне разобраться с этим скриптом np.where? - PullRequest
0 голосов
/ 06 января 2020

Это мой скрипт:

df_smr5['FWCorrect'] = np.where((df_smr5['Firmware E'] == (101122), (101222) | (101320), (19) | (01.10), (01.03) | (1000320), (11000320)), 'OK', 'NOK')

Я получил эту ошибку:

TypeError

Traceback (most recent call last) 
   <ipython-input-5-52adab99696c> in <module>()
----> 1 df_smr5['FWCorrect'] = np.where((df_smr5['Firmware E'] == (101122), (101222) | (101320), (19) | (01.10), (01.03) | (1000320), (11000320)), 'OK', 'NOK')

TypeError: unsupported operand type(s) for |: 'int' and 'float'

1 Ответ

0 голосов
/ 06 января 2020

Что вы пытаетесь сделать? Первый аргумент np.where - это выражение условия, логическое значение. | используется с numpy массивами в смысле logical_or - or, примененными к элементам логических массивов.

Но вы используете его с числами - целые и с плавающей точкой. (19) - это число, а не кортеж.

In [61]: (19) | (01.10)                                                         
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-61-212c5dce76e6> in <module>
----> 1 (19) | (01.10)

TypeError: unsupported operand type(s) for |: 'int' and 'float'
In [62]: (101222) | (101320)                                                    
Out[62]: 101358

Если вы намеревались использовать кортежи:

In [63]: (101222,) | (101320,)                                                  
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-63-2b5f4e4af1f0> in <module>
----> 1 (101222,) | (101320,)

TypeError: unsupported operand type(s) for |: 'tuple' and 'tuple'

df_smr5['Firmware E'] == (101122), вероятно, работает, производя логическое значение для каждого элемент серии, в зависимости от того, является ли == истинным или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...