对条件列表(掩码)施加 OR python pandas

Impose OR on a list of conditions (masks) python pandas

我有以下类型的数据框:

                  dummy1  dummy2  dummy3  ...  dummy8  dummy9  dummy10
Date       ID                             ...                        
1998-01-01 X       1        NaN      NaN  ...     NaN     NaN     NaN
           Y       1        NaN      NaN  ...     NaN     NaN     NaN
1998-01-02 X       NaN      NaN      NaN  ...     NaN     NaN     NaN
           Y       NaN      NaN      NaN  ...     NaN     NaN     NaN
1998-01-05 X       NaN      NaN      NaN  ...     NaN     NaN     NaN
                   ...      ...      ...  ...     ...     ...     ...
2016-12-27 Y       NaN        1      NaN  ...     NaN     NaN     NaN
2016-12-28 X       NaN        1      NaN  ...     NaN     NaN     NaN
           Y       NaN      NaN      NaN  ...     NaN     NaN     NaN
2016-12-29 X       NaN      NaN      NaN  ...     NaN     1       NaN
           Y       NaN      NaN      NaN  ...     NaN     1       NaN

现在,我有一个布尔系列列表,它对应于我称之为 mask 的数据帧的特定掩码。这意味着 mask 包含多个元素(特别是:数据帧的每个虚拟元素),例如 mask[0] 类型,即:

Date        Index
 1998-01-01  X      True
             Y      True
 1998-01-02  X     False
             Y     False
 1998-01-05  X     False
                      ...  
 2016-12-27  Y     False
 2016-12-28  X     False
             Y     False
 2016-12-29  X     False
             Y     False

现在,无论我如何构建 mask 系列(如果数据框中相应的虚拟对象为 1,它们都是 True),我想应用以下命令:

df_new=df[masks[0] | masks[1] | masks[2] | masks[3] | masks[4] | masks[5] | masks[6] | masks[7] | masks[8] | masks[9]]

这意味着我想将列表 mask 中包含的所有掩码与 OR 运算符同时应用到我的数据帧 df 上。如何以 'authomatic' 的方式进行操作而不需要手动指定 mask 的所有元素?能够 'automize' 这部分作为函数的一部分非常重要,该函数根据数据帧列中的虚拟元素数量创建许多不同的 mask 元素

如何创建一个遍历掩码列表的函数?

def filter_many_or(list_of_masks):
    aggregate_mask = list_of_masks[0]

    for mask in list_of_masks[1:]:
        aggregate_mask = aggregate_mask | mask

    return aggregate_mask