【发布时间】:2019-11-06 04:33:42
【问题描述】:
我有一个包含几列数据的数据框。在数据中,-1 相当于缺失数据。我想计算每列中 -1 值的数量。
我相信我可以在加载数据时将 -1 注册为 NaN/缺失值,然后我看到一些使用 isna() 并计算布尔值的东西。但是,我想做的事情(对每一列应用条件)似乎是我应该知道如何做的基本事情,所以我想弄清楚如何做到这一点。
这是一个例子。想象一下,我有以下数据框:
row A B C D E
1 3 5 6 9 -1
2 -1 3 -1 2 0
3 -1 -1 -1 1 -1
我想得到的输出是:
A B C D E
2 1 2 0 2
我尝试了以下方法:
df.apply(lambda x: x == -1).count() # value returned was the count of all the rows
(df == -1).count() # also returned a count of all the rows.
我查看了几个与“countif”相关的问题,但它们似乎都将条件应用于一列以选择行。我在上面尝试的两个项目来自与将函数应用于每列以及计算与每列中的条件匹配的值相关的问题。
cmets 中建议的重复项是为整个数据框寻找单个值,并在每列上寻找不同的标准。我希望将相同的条件应用于每一列并获得每列的结果,如下面的选定答案所示。
如果有任何关于如何进行的想法或想法,我将不胜感激。
【问题讨论】:
-
df[df==-1].count() -
上面显示的
df[df==-1].count()也有效。