Python 如何检查列列表上的条件?

Python 如何检查列列表上的条件?,python,pandas,Python,Pandas,我有一个列列表,对于col1、col2或col3,我只想保持行等于1(所有列的条件相同) listColumnName=['col1','col2','col3'] myDF[(myDF[listColumnName[0]]==1) | (myDF[listColumnName[1]]==1) | (myDF[listColumnName[2]]==1)] 如果我的列列表很大,最好的方法是什么 myDF[myDF[listColumnName]==1] 您可以通过(==)将按子集列表筛选的所

我有一个列列表,对于col1、col2或col3,我只想保持行等于1(所有列的条件相同)

listColumnName=['col1','col2','col3']
myDF[(myDF[listColumnName[0]]==1) | (myDF[listColumnName[1]]==1) | (myDF[listColumnName[2]]==1)]
如果我的列列表很大,最好的方法是什么

myDF[myDF[listColumnName]==1]

您可以通过(
==
)将按子集列表筛选的所有列与-检查每行是否至少有一个
True

myDF = pd.DataFrame({
        'A':list('abcdef'),
        'col1':[4,1,4,5,5,4],
        'col2':[7,8,9,1,2,3],
        'col3':[1,3,5,7,4,0],
        'E':[5,3,6,9,2,4],
        'F':list('aaabbb')
})

print (myDF)
   A  col1  col2  col3  E  F
0  a     4     7     1  5  a
1  b     1     8     3  3  a
2  c     4     9     5  6  a
3  d     5     1     7  9  b
4  e     5     2     4  2  b
5  f     4     3     0  4  b

listColumnName=['col1','col2','col3']
df = myDF[myDF[listColumnName].eq(1).any(axis=1)]
print (df)
   A  col1  col2  col3  E  F
0  a     4     7     1  5  a
1  b     1     8     3  3  a
3  d     5     1     7  9  b
详细信息

print (myDF[listColumnName])
   col1  col2  col3
0     4     7     1
1     1     8     3
2     4     9     5
3     5     1     7
4     5     2     4
5     4     3     0

print (myDF[listColumnName].eq(1))
    col1   col2   col3
0  False  False   True
1   True  False  False
2  False  False  False
3  False   True  False
4  False  False  False
5  False  False  False

print (myDF[listColumnName].eq(1).any(axis=1))
0     True
1     True
2    False
3     True
4    False
5    False
dtype: bool