我有一个看起来像这样的数据框
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
答案 0 :(得分:4)
使用==
创建一个布尔型dtype数据帧,然后将sum
与axis=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