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

如何筛选每个PatientID含一条Admit和一条Discharge记录的数据?

解答

直接在当前分组校验阶段做更严谨的检查就够了,没必要先合并成单行。

你现在用的dfGrouped.groupby('PatientID').filter(lambda x: len(x) == 2)只能保证每个PatientID有2条记录,但没法确保这两条正好是一条“Admit”和一条“Discharge”——比如如果某个PatientID有两条“Admit”,这条代码还是会把它留下来,不符合你的规则。

更精准的校验可以这么写:

dfGrouped.groupby('PatientID').filter(
    lambda x: (x['记录类型'].eq('Admit').sum() == 1) and (x['记录类型'].eq('Discharge').sum() == 1)
)

这里假设记录类型的列名叫记录类型,你可以根据实际列名替换。这段代码会直接过滤出那些恰好有1条Admit和1条Discharge的PatientID分组,一步到位,比先合并再检查更高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 01:05:16