countif 函数怎么嵌套其他函数来作为计数条件?比如len来判定长度?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了countif 函数怎么嵌套其他函数来作为计数条件?比如len来判定长度?相关的知识,希望对你有一定的参考价值。

比如我想对A列100个单元格进行条件计数,设置为长度大于10个字符的(len(A1)>10)单元格来计数,怎么写嵌套函数?数组函数吗?
比如(注意我觉得这个例子是无效的,只是举例):=countif(A1:A100,Len(A1:A100)>10)这样的公式。
求大神指点。

参考技术A 如果你要统计长度大于10的单元格个数,用COUNTIF是不适合的;
如果你要以某一单元格的长度作为条件,对某个区域的数据进行计数,可以用LEN(A1).
Len(A1:A100)>10,包含了100个条件进行判断,结果为100个值。
参考技术B 这个不能用COUNTIF:
=SUMPRODUCT(N(LEN(A1:A100)>10))追问

请问中间“N”这个参数是什么意思?

参考技术C =SUMPRODUCT(--(LEN(A1:A100)>10))追问

请问中间两个“--”是什么意思?

追答

两个负号,目的为了让逻辑值TRUE,FALSE转为数值1和0

本回答被提问者采纳

熊猫计数和求和特定条件

【中文标题】熊猫计数和求和特定条件【英文标题】:Pandas counting and summing specific conditions 【发布时间】:2014-01-26 12:38:27 【问题描述】:

pandas 中是否有单个函数来执行 SUMIF(对特定条件求和)和 COUNTIF(从 Excel 计算特定条件的值)的等效项?

我知道有很多多步函数可以用于

例如对于sumif,我可以使用(df.map(lambda x: condition), or df.size()),然后使用.sum()

对于countif,我可以使用(groupby functions 并寻找我的答案或使用过滤器和.count())

是否有简单的一步过程来执行这些功能,您可以输入条件和数据框并获得总和或计数结果?

【问题讨论】:

【参考方案1】:

您可以先进行条件选择,然后使用sum函数对选择结果进行汇总。

>> df = pd.DataFrame('a': [1, 2, 3])
>> df[df.a > 1].sum()   
a    5
dtype: int64

有多个条件:

>> df[(df.a > 1) & (df.a < 3)].sum()
a    2
dtype: int64

如果你想做COUNTIF,只需将sum()替换为count()

【讨论】:

如果您有两个或更多不同的列并且需要多个条件,您会怎么做? 只需将第二个示例中选定的列之一更改为另一个列名。 对于多个列,每个唯一值的计数使用df.aggregate(['value_counts])。当这些列具有相同的值时是理想的。您也可以只使用选择列df[list_of_columns].aggregate(['value_counts])【参考方案2】:

我通常在逻辑条件列上使用 numpy sum:

>>> import numpy as np
>>> import pandas as pd
>>> df = pd.DataFrame('Age' : [20,24,18,5,78])
>>> np.sum(df['Age'] > 20)
2

在我看来,这比上面提出的解决方案略短

【讨论】:

其实这里不一定要用numpy。你可以sum(df['Age'] &gt; 20)。参数是可迭代的,可以被内置函数获取。【参考方案3】:

您没有提到数据帧的精美索引功能,例如:

>>> df = pd.DataFrame("class":[1,1,1,2,2], "value":[1,2,3,4,5])
>>> df[df["class"]==1].sum()
class    3
value    6
dtype: int64
>>> df[df["class"]==1].sum()["value"]
6
>>> df[df["class"]==1].count()["value"]
3

你可以用另一个条件替换df["class"]==1

【讨论】:

我的代码中也有这个,但是如果你有多个条件,比如我想要df[df["class"]==1].count()["value"]df[df["value"]==2].count()["class"] Jimmy C 提出了多个条件的组合,所以我不会在我的帖子中重复它。你还缺什么吗? 获取计数的更简单方法是len(df[df["class"]==1])

以上是关于countif 函数怎么嵌套其他函数来作为计数条件?比如len来判定长度?的主要内容,如果未能解决你的问题,请参考以下文章

Excel中countif函数的使用方法

我用countif函数统计时,最后显示的数字始终是0,是怎么回事?

R语言dataframe计算满足筛选条件的行的个数(筛选满足条件的数据行并计数):类似于excel的countif函数

熊猫计数和求和特定条件

power bi 多条件计数问题

sumif和countif的区别