【发布时间】:2020-11-03 02:41:16
【问题描述】:
我正在尝试找到一种更少手动、更方便的方法来根据多个布尔条件对 Pandas DataFrame 进行切片。为了说明我所追求的,这里有一个简化的例子
df = pd.DataFrame({'col1':[True,False,True,False,False,True],'col2':[False,False,True,True,False,False]})
假设我对 DataFrame 的子集感兴趣,其中 'col1' 和 'col2' 都是 True。我可以通过运行找到它:
df[(df['col1']==True) & (df['col2']==True)]
这在像这个这样的小维度示例中是足够易于管理的,但是真正的示例最多可以有一百列,所以与其像上面那样将一个长布尔值串在一起,我宁愿阅读对列表感兴趣,例如
['col1','col2']
并选择列出的那些列True
【问题讨论】:
-
df.loc[df[magic_list_of_columns].all(axis='columns')]