使用布尔比较将产生一个布尔df,然后我们可以将其强制转换为int,True变为1,False变为0,然后调用
count并传递param
axis=1以逐行计数:
In [56]:df = pd.Dataframe({'a':[1,0,0,1,3], 'b':[0,0,1,0,1], 'c':[0,0,0,0,0]})dfOut[56]: a b c0 1 0 01 0 0 02 0 1 03 1 0 04 3 1 0In [64]:(df == 0).astype(int).sum(axis=1)Out[64]:0 21 32 23 24 1dtype: int64
分解以上内容:
In [65]:(df == 0)Out[65]: a b c0 False True True1 True True True2 True False True3 False True True4 False False TrueIn [66]:(df == 0).astype(int)Out[66]: a b c0 0 1 11 1 1 12 1 0 13 0 1 14 0 0 1
编辑
大卫指出,
astypeto
int是不必要的,因为在调用时
Boolean将向上转换类型
int,
sum因此简化为:
(df == 0).sum(axis=1)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)