Значение истинности серии неоднозначно: используйте - PullRequest
0 голосов
/ 07 ноября 2018

Я получаю сообщение об ошибке

ValueError: Значение истинности ряда неоднозначно для if состояние.

со следующей функцией:

for i , row in train_news.iterrows():
if train_news.iloc[:,0].isin(['mostly-true','half-true','true']):
    train_news.iloc[:,0] = "true"
else :
    train_news.iloc[:,0] = "false"

1 Ответ

0 голосов
/ 07 ноября 2018

Проблема в вашем if утверждении -

if train_news.iloc[:,0].isin(['mostly-true','half-true','true'])

Подумайте, что это делает -

Допустим, train_news.iloc[:,0] выглядит так -

mostly-true
not-true
half-true

Теперь, если вы сделаете train_news.iloc[:,0].isin(['mostly-true','half-true','true']), это будет итеративно проверять, присутствует ли каждый элемент в списке ['mostly-true','half-true','true']

Итак, это даст еще один pandas.Series, который выглядит так -

True
False
True

Оператор if в python, будучи простым человеком, ожидает одно значение bool, и вы просто путаете его, предоставляя набор логических значений. Итак, либо вам нужно использовать .all() или .any() (это обычные задачи) в конце, в зависимости от того, что вы хотите

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