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

如何在Pandas中筛选包含Type 1的系统分组数据?

Pandas筛选包含特定值的分组所有行

方法一:使用groupby + transform(保留分组上下文)

这种方法会为每一行标记其所在分组是否包含Type=1,再通过标记筛选目标行:

import pandas as pd

data = [['A', 1], ['A', 2], ['A', 2],['A',3],['B',1],['B',2],['C',2],['C',3],['D',3]]
df = pd.DataFrame(data, columns=['System', 'Type'])

# 为每行生成所在分组是否包含Type=1的布尔值
has_type1 = df.groupby('System')['Type'].transform(lambda x: (x == 1).any())
# 筛选符合条件的行
filtered_df = df[has_type1]
print(filtered_df)

方法二:先提取有效分组再过滤(逻辑更直观)

先找出所有包含Type=1的System,再直接过滤这些分组的所有行:

import pandas as pd

data = [['A', 1], ['A', 2], ['A', 2],['A',3],['B',1],['B',2],['C',2],['C',3],['D',3]]
df = pd.DataFrame(data, columns=['System', 'Type'])

# 获取所有包含Type=1的System列表
valid_systems = df[df['Type'] == 1]['System'].unique()
# 筛选System属于有效列表的所有行
filtered_df = df[df['System'].isin(valid_systems)]
print(filtered_df)

两种方法最终输出均符合期望:

SystemType
A1
A2
A2
A3
B1
B2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 19:15:32