如何在Python中执行COUNTIF函数
在这篇文章中,我们将讨论如何在Python中执行COUNTIF函数。
COUNTIF
如果条件得到满足,我们用这个函数来计算元素。注意,这个词代表COUNT + IF。这意味着我们要在提供的条件得到满足的情况下计算元素。
步骤
- 我们将有一个带有一些列的DataFrame。
- 我们将使用函数sum()。sum()函数将接受一个Iterable值。我们将有一个数据框架,其中的列包含一个元素的列表。然后我们将传递条件,以检查当前元素是否满足它。
- sum()返回一个整数值。所以我们将存储该值并打印出来。
语法
sum()函数的语法如下。
sum(data-list condition)
让我们举个例子,我们有一个叫做myList的列表,在这个列表中,有一些整数值。我们希望大于等于40的项目的数量。所以我们可以使用sum函数,如下所示。
sum(mylist >= 40)
对于使用两个条件,我们可以使用AND( & ) 或OR( | ) 来分离两个条件。
sum((myList) >= 40 & (myList <= 90)) # AND
sum((myList) >= 40 | (myList <= 90)) # OR
方法1:使用单列
首先,让我们创建一个DataFrame。这里我们有两列,分别是视图和喜欢。我们将保持每列的长度相同。
# create a dictionary
my_data = {"views": [12, 13, 100, 80, 91],
"likes": [3, 8, 23, 17, 56]}
# convert to dataframe
my_df = pd.DataFrame(my_data)
条件1:如果视图超过30
我们将使用sum()函数来检查,在视图列表列中,数值是否大于30。然后sum函数将计算有对应的视图大于30的行。
import pandas as pd
# Data
my_data = {"views": [12, 13, 100, 80, 91],
"likes": [3, 8, 23, 17, 56]}
my_df = pd.DataFrame(my_data)
# Printing the DataFrame
print(my_df.to_string())
# Printing the number of views greater
# than 30
print("View greater than 30: ",
sum(my_df.views > 30))
输出

条件2:如果喜欢的人超过了20个
sum()函数用来检查,如果在列表中的喜欢列中,数值大于20。然后,sum函数将计算相应的喜欢大于20的行。
import pandas as pd
# Data
my_data = {"views": [12, 13, 100, 80, 91],
"likes": [3, 8, 23, 17, 56]}
my_df = pd.DataFrame(my_data)
# Printing the DataFrame
print(my_df.to_string())
# Printing the number of likes greater
# than 20
print("Likes greater than 20: ",
sum(my_df.likes > 20))
输出

方法2:使用多列
条件1:赞数少于20,且查看次数超过30
对于满足两个或更多的条件,将每个条件用括号()包起来,然后用单个&符号来分隔它们。这里我们只有两个条件,所以我们只需要一个&。
import pandas as pd
# Data
my_data = {"views": [12, 13, 100, 80, 91], "likes": [3, 8, 23, 17, 56]}
my_df = pd.DataFrame(my_data) # DataFrame
# Printing the DataFrame
print(my_df.to_string())
# Calculating the number of views greater than 30
# as well as likes less than 20
sum = sum((my_df.likes < 20) & (my_df.views > 30))
print("Likes less than 20 and Views more than 30: ", sum)
输出

条件2:使用OR条件
我们将使用单个|符号来分隔条件。|被用作第一个条件或第二个或第三个,以此类推。
import pandas as pd
# Data
my_data = {"views": [12, 13, 100, 80, 91], "likes": [3, 8, 23, 17, 56]}
my_df = pd.DataFrame(my_data) # DataFrame
# Printing the DataFrame
print(my_df.to_string())
# Calculating the number of views greater than 30
# or likes less than 20
sum = sum((my_df.likes < 20) | (my_df.views > 30))
print("Likes less than 20 or Views more than 30: ", sum)
输出

极客教程