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

如何通过结局标签关联Pandas DataFrame中的患者数据?

解决方法

可以用 pandas 结合 itertools.combinations 实现需求,核心逻辑是按结局标签分组后,为每组生成不重复的患者ID两两组合,最后合并成目标DataFrame。

代码实现

import pandas as pd
from itertools import combinations

# 构建示例输入DataFrame
df = pd.DataFrame({
    'ID': [1, 2, 3, 4, 5],
    'Outcome': [1, 0, 1, 1, 0]
})

# 生成同结局标签下的ID两两组合
pair_list = []
for _, group in df.groupby('Outcome'):
    # 生成所有长度为2的不重复组合(自动排除反向重复如(3,1)这类情况)
    pairs = combinations(group['ID'], 2)
    pair_list.extend(pairs)

# 转换为目标格式的DataFrame
result_df = pd.DataFrame(pair_list, columns=['ID 1', 'ID 2'])
print(result_df)

代码说明

  • groupby('Outcome'):将原始数据按结局标签(0/1)拆分分组
  • combinations(group['ID'], 2):针对每组的ID列,生成所有无顺序重复的两两组合,完全匹配你给出的示例输出逻辑
  • 最后将所有组合汇总后转成DataFrame,设置对应列名即可得到结果

运行代码后输出结果:

ID 1  ID 2
0     1     3
1     1     4
2     3     4
3     2     5

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 15:39:52