2016-01-23 198 views
1

我有一个DF,看起来像一列计数非零数字的个数:在大熊猫/ A 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不是零。任何帮助将非常感激!

+0

我看到了,谢谢。不幸的是,他们的问题是不同的,因为他们希望每行都有它,并且除以总和,所以没有那里使用的代码适用于我的问题。 – user5826447

+1

顶部答案的第一行显示“要计算非零值,只需执行'(column!= 0).sum()',其中'column'是要执行此操作的数据。这似乎正是你所要求的;-) –

回答

5

使用双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 

如果您需要数仅列cd

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

print (df['d'] != 0).sum() 
3 

编辑:解numpy.sum

print ((df != 0).values.sum()) 
14 
+0

这是有道理的,但我怎么做只为列c?我不想要总数。 – user5826447

+0

很高兴能帮到你!祝你好运!你可以[接受](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)和[投票](http://stackoverflow.com/tour)回答。谢谢。 – jezrael