Python 如何获取DataFrame中条件值的行计数?

Python 如何获取DataFrame中条件值的行计数?,python,pandas,dataframe,Python,Pandas,Dataframe,我有这个数据框 0 1 2 3 4 5 6 7 8 .... 1000 aa | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 7 |...| 1 bb | 0 | 1 | 0 | 0 | 0 | 0 | 3 | 0 | 0 |...| 0 cc | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 |...| 1 dd | 0 | 0 | 5 | 0 | 0 | 1 | 0 | 1 | 0 |...| 0 .

我有这个数据框

     0   1   2   3   4   5   6   7   8 .... 1000

aa | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 7 |...| 1

bb | 0 | 1 | 0 | 0 | 0 | 0 | 3 | 0 | 0 |...| 0

cc | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 |...| 1

dd | 0 | 0 | 5 | 0 | 0 | 1 | 0 | 1 | 0 |...| 0
.
.
.

zz | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 |...| 0
我试过使用:

DFcount = DF1.apply(lambda x: True if x.any() > 0 else  False,axis=1)
numOfRows = len(DFcount[DFcount == True].index)
我还尝试使用:

DFcount = DF1.apply(lambda x: True if x.all() > 0 else  False,axis=1)
numOfRows = len(DFcount[DFcount == True].index)
但结果并不是我所期望的

输出应该是所有行中值大于0的所有列的总和

aa 100

bb 23

cc 56

dd 12
.
.
.

zz 5
并向下排序如下:

aa 100

mm 98

cc 56

bb 23

dd 12
.
.
.

zz 5
使用:

说明

首先通过
0
将所有值与(
)进行比较:

然后对每行的值求和
True
s(像
1
一样处理):

print (df.gt(0).sum(axis=1))
aa    2
bb    1
cc    4
dd    2
zz    2
dtype: int64
然后按以下方式排序:


您能从问题的样本数据中添加预期的输出吗?该值不仅是0和1,正如我在上面解释的,我想对所有值大于1的列进行计数/求和。而且aa bb cc dd已经作为索引。所以你的答案不是01 2 3 4mentioned@FH337-当然,第二个解决方案被删除了。我试图简化它,这段代码将完成所有工作:df1=df.gt(0).sum(axis=1).sort_values(升序=False)@FH337-Super。还添加了对答案的解释。
print (df.gt(0))
        0      1      2      3      4      5      6      7      8   1000
aa  False  False  False  False  False   True  False  False  False   True
bb  False   True  False  False  False  False  False  False  False  False
cc  False   True   True  False  False   True  False  False  False   True
dd  False  False  False  False  False   True  False   True  False  False
zz  False  False   True  False  False   True  False  False  False  False
print (df.gt(0).sum(axis=1))
aa    2
bb    1
cc    4
dd    2
zz    2
dtype: int64
print (df.gt(0).sum(axis=1).sort_values(ascending=False))
cc    4
zz    2
dd    2
aa    2
bb    1
dtype: int64