熊猫DataFrame-每行计数0

时间:2018-07-16 16:21:07

标签: python pandas dataframe

我有一个看起来像这样的数据框

x = pd.DataFrame.from_dict({'A':[1,2,0,4,0,6], 'B':[0, 0, 0, 44, 48, 81], 'C':[1,0,1,0,1,0]})

(假设它可能还有其他列)。 我想添加一列,该列为每一行指定特定的A,B,C列中有0个。

   A   B  C  num_zeros
0  1   0  1    1
1  2   0  0    2
2  0   0  1    2
3  4  44  0    1
4  0  48  1    1
5  6  81  0    1

1 个答案:

答案 0 :(得分:4)

使用==创建一个布尔型dtype数据帧,然后将sumaxis=1一起使用:

x['num_zeros'] = (x == 0).sum(1)

输出:

   A   B  C  num_zeros
0  1   0  1          1
1  2   0  0          2
2  0   0  1          2
3  4  44  0          1
4  0  48  1          1
5  6  81  0          1

现在,如果要显式定义哪些列,即B和C列中的计数,则可以使用:

x['Num_zeros_in_BC'] = (x == 0)[['B','C']].sum(1)

输出:

   A   B  C  num_zeros  Num_zeros_in_BC
0  1   0  1          1                1
1  2   0  0          2                2
2  0   0  1          2                1
3  4  44  0          1                1
4  0  48  1          1                0
5  6  81  0          1                1