在Python Pandas中执行类似Excel的countifs操作,可以使用groupby
和agg
函数来实现。
假设我们有一个包含以下内容的数据集:
Name | Age | Gender | City |
---|---|---|---|
Alice | 28 | F | Beijing |
Bob | 30 | M | Shanghai |
Carol | 25 | F | Beijing |
David | 30 | M | Beijing |
Eve | 25 | F | Shanghai |
现在我们想要用Python Pandas来实现类似于Excel的countifs
操作,计算特定条件下的总数。比如,我们要计算在北京且年龄大于等于30岁的人数。
首先,我们需要创建一个新的DataFrame,只包含满足条件的数据行。
import pandas as pd
df = pd.DataFrame({
'Name': ['Alice', 'Bob', 'Carol', 'David', 'Eve'],
'Age': [28, 30, 25, 30, 25],
'Gender': ['F', 'M', 'F', 'M', 'F'],
'City': ['Beijing', 'Shanghai', 'Beijing', 'Beijing', 'Shanghai']
})
# 创建新的DataFrame,只包含City为'Beijing'且Age>=30的数据行
criteria = (df['City'] == 'Beijing') & (df['Age'] >= 30)
df_filtered = df[criteria]
print(df_filtered)
# 输出
# Name Age Gender City
# 1 Bob 30 M Shanghai
# 3 David 30 M Beijing
现在我们得到了一个新的DataFrame,只包含北京市年龄大于等于30岁的人。接下来我们使用groupby
和agg
函数来计算符合条件的人数。
# 按Gender分组,计算符合条件的人数(count)
result = df_filtered.groupby('Gender').agg({'Gender': 'count'})
print(result)
# 输出
# Gender
# Gender
# M 2
上面的代码中,我们首先使用groupby
函数,按照Gender
字段对数据进行分组,然后使用agg
函数,对Gender
列执行count
聚合函数,计算符合条件的人数。
这样,我们就完成了在Python Pandas中执行类似于Excel的countifs
操作,计算特定条件下的总数。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在Python Pandas中执行类似Excel的counttifs操作 - Python技术站