登录
首页 >  文章 >  python教程

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

时间:2024-12-08 19:30:53 263浏览 收藏

哈喽!今天心血来潮给大家带来了《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 函数统计每行大于指标值的列数?》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>