У меня проблема с pandas 19.2, дающая мне результат, который я ожидаю. Столбцы a-g имеют ['да', 'нет', '', NaN]. Если какой-либо из этих столбцов имеет «да», я хочу вернуть строку (другие столбцы не показаны). Вот мой код.Pandas логическая операция
xdf2 = xdf[((xdf['a'] == 'yes').all() or
(xdf['b'] == 'yes').all() or
(xdf['c'] == 'yes').all() or
(xdf['d'] == 'yes').all() or
(xdf['e'] == 'yes').all() or
(xdf['f'] == 'yes').all() or
(xdf['g'] =='yes').all()) ]
Это дает мне следующее сообщение об ошибке:
2134 return self._engine.get_loc(key)
2135 except KeyError:
-> 2136 return self._engine.get_loc(self._maybe_cast_indexer(key))
2137
2138 indexer = self.get_indexer([key], method=method, tolerance=tolerance)
pandas\index.pyx in pandas.index.IndexEngine.get_loc (pandas\index.c:4433)()
pandas\index.pyx in pandas.index.IndexEngine.get_loc (pandas\index.c:4279)()
pandas\src\hashtable_class_helper.pxi in pandas.hashtable.PyObjectHashTable.get_item (pandas\hashtable.c:13742)()
pandas\src\hashtable_class_helper.pxi in pandas.hashtable.PyObjectHashTable.get_item (pandas\hashtable.c:13696)()
KeyError: False
Без '.all' Я получаю
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
Это кажется простым и общим фрагмент кода, но я гавань» t нашел хороший пример. Что мне не хватает?
А простой xdf2 = XDF [(XDF [ 'а'] == 'да') | (xdf ['b'] == 'да') | (xdf ['c'] == 'да') | (xdf ['d'] == 'yes')] будет работать. Оператор или оператор | – Vaishali