Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 选择列上的条件为真的所有行_Python_Pandas_Dataframe - Fatal编程技术网

Python 选择列上的条件为真的所有行

Python 选择列上的条件为真的所有行,python,pandas,dataframe,Python,Pandas,Dataframe,我有这个df: df=pd.DataFrame({times:[1,2,3],'1' : [True,False,True], '2':[False,False,True]}) 我想返回列“1”或“2”为真的行: expected_df : times '1' '2' 1 True False 3 True True 在我的真实示例中,我有更多的列,因此我正在使用df列列表寻找解决方案,如: df.loc[df[myColumns]==True] 我该怎么做呢?

我有这个df:

df=pd.DataFrame({times:[1,2,3],'1' : [True,False,True], '2':[False,False,True]})
我想返回列“1”或“2”为真的行:

expected_df : 
times '1'   '2'
1      True  False
3      True  True
在我的真实示例中,我有更多的列,因此我正在使用df列列表寻找解决方案,如:
df.loc[df[myColumns]==True]


我该怎么做呢?

如果您有列列表:

columns = [...]
mask = df[columns[0]] == true
for col_name in culomns[1:]:
    mask = mask | df[col_name] == true
my_df = df[mask]
df.loc[df[myColumns].all(1)]

这可能会起作用,因为至少为1 True的行的值将大于0,并且如果有多个列,则不必列出所有列名。

我应该明确指出,在我的真实示例中,我只有非常大的列列表,可以将时间更改为时间这与
df[df['1']&df['2']]相同
u可以将掩码作为循环运行。它只返回所有列都为真的情况。如果一个或多个True@Pi-R将
all(1)
更改为
any(1)
df[df.apply(sum, axis=1)>0]