熊猫逻辑运算

Har*_*vey 1 python pandas

我遇到了大熊猫的问题19.2给了我预期的结果.列ag具有['yes','no','',NaN].如果这些列中的任何一个都有"是",我希望返回该行(还有其他列未显示).这是我的代码.

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()) ]
Run Code Online (Sandbox Code Playgroud)

这给了我以下错误:

   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
Run Code Online (Sandbox Code Playgroud)

没有'.all',我得到了

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
Run Code Online (Sandbox Code Playgroud)

这看起来像一个简单而通用的代码片段,但我还没有找到一个好的例子.我错过了什么?

piR*_*red 5

尝试

xdf[xdf[list('abcdefg')].eq('yes').any(1)]
Run Code Online (Sandbox Code Playgroud)