如何在Pandas中实现Excel的COUNTIFS多条件计数并新增统计列
Pandas实现Excel COUNTIFS多条件计数新增列的方法
你要的多条件组合计数可以直接通过groupby+transform实现,逻辑和Excel COUNTIFS完全一致,不需要循环遍历,性能优异。
核心代码
# 按HOUR、SYMBOL两个字段分组统计出现次数,结果映射回原表每一行 df['组合出现次数'] = df.groupby(['HOUR', 'SYMBOL'])['HOUR'].transform('count')
效果验证
你提供的原始数据结构如下:
我们用匹配的测试数据运行验证:
import pandas as pd # 构造和你场景一致的测试数据 data = { "HOUR": ["07", "08", "08", "08", "09"], "SYMBOL": ["AB NA", "AC NA", "AD NA", "AD NA", "AE NA"] } df = pd.DataFrame(data) # 执行计数 df['组合出现次数'] = df.groupby(['HOUR', 'SYMBOL'])['HOUR'].transform('count')
运行后得到的组合出现次数列值为[1, 1, 2, 2, 1],完全符合你的预期结果。
拓展说明
如果后续需要增加更多判断条件,只需要在groupby的列表里追加对应列名即可,比如要加DATE列做第三个统计条件,修改为groupby(['DATE','HOUR','SYMBOL'])就可以。
内容的提问来源于stack exchange,提问作者paddyusa
相关产品推荐
相关产品推荐

