如何筛选数据集中不包含值'N'的分组
需求说明
筛选所有分组中value列从未出现值N的分组。
不同工具实现方案
1. SQL实现
假设表名为t,查询语句如下:
SELECT `group` FROM t GROUP BY `group` -- 统计分组内N的出现次数,次数为0即符合要求 HAVING COUNT(CASE WHEN value = 'N' THEN 1 END) = 0;
2. Python Pandas实现
假设数据已读入DataFrame对象df:
# 聚合判断每个分组是否全为非N值 mask = df.groupby('group')['value'].apply(lambda x: (x != 'N').all()) # 提取符合要求的分组 result = mask[mask].index.to_frame(index=False)
输出的result就是仅包含A、D分组的结果表。
3. Excel实现
假设原始数据在A、B列,表头在第1行,数据行范围2~13:
- 先提取所有不重复的分组:在D2单元格输入公式
=UNIQUE(A2:A13)得到A/B/C/D四个分组 - E2单元格输入判断公式
=COUNTIFS(A:A,D2,B:B,"N")=0,下拉填充所有分组行 - 筛选E列结果为
TRUE的D列值,即为所求结果。
内容的提问来源于stack exchange,提问作者kalex
相关产品推荐
相关产品推荐

