首页 > 解决方案 > 熊猫数据框检查一行的多列中是否存在值

问题描述

我想为多列打印出值为“True”的行。

例如,如果数据框如下:

   Remove  Ignore  Repair
0    True   False   False
1   False    True    True
2   False    True   False

我希望它打印:

1

有没有一种优雅的方法来代替一堆 if 语句?

标签: pythonpandas

解决方案


  • 您可以使用 sum 并通过 axis=1 对列求和。
import pandas as pd
df = pd.DataFrame({'a':[False, True, False],'b':[False, True, False], 'c':[True, False, False,]})
print(df)
print("Ans: ",df[(df.sum(axis=1)>1)].index.tolist())

输出:

      a       b      c
0   False   False   True
1   True    True    False
2   False   False   False
Ans: [1]

推荐阅读