【问题标题】:counting the number of non-zero numbers in a column of a df in pandas/python计算熊猫/python中df列中非零数字的数量
【发布时间】:2016-01-23 20:03:22
【问题描述】:

我有一个看起来像这样的 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 列中不为零的数字的数量。任何帮助将不胜感激!

【问题讨论】:

  • 我看到了,谢谢。不幸的是,他们的问题是不同的,因为他们希望每一行都得到它,并除以总和,所以那里使用的代码都不适用于我的问题。
  • 顶部答案的第一行显示“要计算非零值,只需执行(column!=0).sum(),其中column 是您要为其计算的数据。”这似乎正是您要问的;-)

标签: python numpy pandas


【解决方案1】:

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

【讨论】:

  • 这是有道理的,但我该如何为 c 列做呢?我不想要总数。
【解决方案2】:

Numpy 的 count_nonzero 函数对此非常有效。

np.count_nonzero(df["c"])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-20
    • 1970-01-01
    • 1970-01-01
    • 2019-02-12
    相关资源
    最近更新 更多