You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检查DataFrame各分组Indicator列是否含1并返回无1的分组

解决思路

核心逻辑是按字母分组后判断每组的Indicator列是否完全没有1,步骤如下:

  • 按Letter字段对DataFrame分组,每个分组对应同一个字母的全部行
  • 对每个分组的Indicator列做聚合校验:只要该列存在1就排除,否则保留对应的字母
  • 最终输出保留的字母即可
代码实现

首先导入pandas并构造示例DataFrame:

import pandas as pd

df = pd.DataFrame({
    'Letter': ['A','A','A','B','B','C','C','C','C'],
    'Indicator': [0,1,0,0,0,0,0,1,0]
})

两种常用实现方式:

方式1:用max聚合判断

因为Indicator取值只有0和1,分组后的最大值为0就说明该组从来没有出现过1:

group_max = df.groupby('Letter')['Indicator'].max()
res = group_max[group_max == 0].index.tolist()
print(res) # 输出结果:['B']

方式2:用any聚合反向筛选

any()方法只要组内存在1就返回True,对结果取反就能拿到从来没有1的分组:

has_one = df.groupby('Letter')['Indicator'].any()
res = has_one[~has_one].index.tolist()
print(res) # 输出结果:['B']

如果只需要返回单个字母值,直接取res[0]即可得到B。

内容的提问来源于stack exchange,提问作者Anrich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 08:00:00