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

是否有Pandas方法可基于另一列值筛选目标客户的全部记录?

优化方案:单步筛选含Intake就诊记录的患者所有数据

可以用两种更简洁高效的方法直接在原DataFrame上完成筛选,避免额外创建列表和映射操作:

方法1:使用isin直接筛选

这是最直观的单步写法,直接利用布尔索引完成:

df_filtered = df[df['ClientID'].isin(df.loc[df['VisitType'] == 'Intake', 'ClientID'])]

方法2:使用groupby + transform(更高效,适合大数据集)

当数据量较大时,这种方法性能更优,通过分组后检查每个组是否包含Intake生成掩码:

df_filtered = df[df.groupby('ClientID')['VisitType'].transform(lambda x: 'Intake' in x.values)]

优势说明

  • 无需额外创建newPatientList列表和mask映射,代码更简洁
  • 方法2避免了isin的全局查找,分组后局部检查的效率更高,尤其适合ClientID数量较多的场景
  • 两种方法都直接在原DataFrame上操作,减少中间变量占用

运行任意一种代码后,都会得到你期望的输出结果:

ClientIDVisitType
2Intake
2Regular Session
3Intake
3Regular Session
3Regular Session

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 21:17:07