Pandas 如何实现 COUNTIF 函数统计每行大于指标值的列数?

pandas 如何实现 countif 函数统计每行大于指标值的列数?

在 pandas 中如何实现 countif 函数?

您想要统计每行中比指定指标值大的列的个数。此问题可以轻松使用 excel 中的 countif 函数解决。但是,在 pandas 中,您可能会遇到像您描述的困难。

问题

您的代码如下:

np.where(data[data.columns[1:]] > data['指标']).count(1)(data[data.columns[1:]] > data['指标']).sum()

但这些代码返回 0 的结果。这是因为:

np.where 返回一个布尔掩码,而不是实际计数。sum() 仅计算布尔掩码中的 true 的数量,该数量始终为 0 或 1。

解决方案

要实现 countif 函数,您可以使用 apply() 方法逐行应用 lambda 函数。代码如下:

data['countif'] = data.apply(lambda x : sum(data['X1':'X4'] > data['指标']),axis =1)

lambda x : sum(data[‘x1′:’x4’] > data[‘指标’]) 定义了一个 lambda 函数,该函数获取一行数据 x 并计算大于指标值的元素数量。apply() 逐行应用 lambda 函数,并将结果存储在名为 ‘countif’ 的新列中。

现在,data[‘countif’] 列包含每行中大于指标值的列的个数。

以上就是Pandas 如何实现 COUNTIF 函数统计每行大于指标值的列数?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1351170.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月13日 15:42:52
下一篇 2025年12月13日 15:43:02

相关推荐

发表回复

登录后才能评论
关注微信