在pandas/python中计算df列中的非零数字的数量

use*_*447 4 python numpy pandas

我有一个看起来像这样的df:

a b c d e 0 1 2 3 5 1 4 0 5 2 5 8 9 6 0 4 5 0 0 0

我想输出列c中不为零的数字.任何帮助将非常感激!

jez*_*ael 7

使用双sum:

print df
   a  b  c  d  e
0  0  1  2  3  5
1  1  4  0  5  2
2  5  8  9  6  0
3  4  5  0  0  0

print (df != 0).sum(1)
0    4
1    4
2    4
3    2
dtype: int64

print (df != 0).sum(1).sum()
14
Run Code Online (Sandbox Code Playgroud)

如果您只需要计数列cd:

print (df['c'] != 0).sum()
2

print (df['d'] != 0).sum()
3
Run Code Online (Sandbox Code Playgroud)

编辑:解决方案numpy.sum:

print ((df != 0).values.sum())
14
Run Code Online (Sandbox Code Playgroud)