python怎么实现跨列_python pandas跨列条件计数

我只是用一个扁平的数据框做这个,但是面板也是一样的。你可以用两种方法之一。第一种方法是您所做的,只需将count()更改为sum():( df > 0 ).sum(axis=1)

底层结构是布尔型的,True和False都被计算在内,而如果对它们求和,它的解释就更像您所期望的那样(0/1)。

但更标准的做法是:df[ df > 0 ].count(axis=1)

前一种方法基于布尔值的数据框架,后一种方法如下:df[ df > 0 ]

a b c d e f g h i j

0 1 NaN NaN NaN NaN NaN NaN NaN 1 NaN

1 NaN 1 NaN NaN NaN 1 NaN NaN NaN NaN

2 1 NaN NaN NaN NaN NaN NaN NaN NaN NaN

3 NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN

4 NaN NaN NaN 1 NaN NaN NaN NaN NaN NaN

在这种情况下,你使用哪种方法并不重要,但一般来说,后者会更好,因为你可以用它做更多的事情。例如,对于前一种方法(按设计有二进制结果),您真正能做的就是计数,但是在后一种方法中,您可以计数、求和、乘法等

对于有两个以上可能值的df != 0来说,这种方法的潜在有用性可能更为明显:df[ df != 0 ]

a b c d e f g h i j

0 1 NaN NaN -1 NaN NaN -1 NaN 1 NaN

1 NaN 1 NaN NaN NaN 1 NaN NaN NaN -1

2 1 NaN NaN NaN NaN -1 NaN NaN NaN NaN

3 NaN -1 NaN NaN NaN NaN NaN 1 NaN NaN

4 NaN NaN NaN 1 NaN NaN -1 NaN NaN -1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值