Python Pandas如何计算至少有一个零的行数

时间:2019-05-15 17:29:12

标签: python pandas

我的熊猫有一个数据框,想从中进行一些计算。

我认为这更像是交叉路口的问题

颜色1 = [0,1,2,0] 第2列= [0,0,1,0]

以上是我的数据框,我想计算一列中至少有一个0的行数。 例如,我希望输出为3,因为三行中至少有0。

2 个答案:

答案 0 :(得分:1)

由于0是Falsey值,所以只需使用all

(~df.all(1)).sum()

3

答案 1 :(得分:0)

我知道这可以一行完成,但是下面的示例是明确的。

创建数据框

df = pd.DataFrame([[0,0],[1,0],[2,1],[0,0]], columns=("Col1","Col2"))

df看起来

   Col1  Col2
0     0     0
1     1     0
2     2     1
3     0     0

一个简单的蒙版将显示与过滤器匹配的“单元格”

m = df == 0

m看起来

    Col1   Col2
0   True   True
1  False   True
2  False  False
3   True   True

使用.any应该显示序列或列等中的任何内容是否与“ any”的布尔逻辑匹配。我们要求它使用axis = 1,以便它按行而不是按列(axis = 0)

rows = m.any(axis = 1)

mrows看起来

0     True
1     True
2    False
3     True
dtype: bool

然后,您可以对它们进行求和,因为布尔真值有点像1。

mrows.sum()    # >>> 3

但要明确...将True设置为1,将False设置为0

mrows = mrows[mrows] = 1
mrows.sum()