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

如何在Python pandas中将相同Subject_ID的DRUG列内容合并至单行

Python pandas 实现分组拼接药物名的方法

你需要按Subject_ID字段对数据集做分组聚合,同组下的DRUG字段用逗号加空格拼接所有值,同组下的LOS字段直接取任意一个值即可(因为同一个Subject_ID对应的LOS完全一致)。

完整实现代码如下:

import pandas as pd

# 如果你是从文件读取数据集,替换下方构造DataFrame的代码即可,例如 df = pd.read_csv("你的数据集路径.csv")
df = pd.DataFrame({
    'Subject_ID': [2456, 2456, 12345, 12345, 12345],
    'DRUG': ['Syringe (Neonatal) *NS*', 'Heparin', 'Syringe (Neonatal) *NS*', 'ampicillin', 'gentamicin'],
    'LOS': [1.56, 1.56, 0.78, 0.78, 0.78]
})

# 核心分组聚合逻辑
result_df = df.groupby('Subject_ID', as_index=False).agg(
    # 拼接同ID所有药物名称,需要去重的话可改为 lambda x: ', '.join(x.unique())
    DRUG = ('DRUG', lambda x: ', '.join(x)),
    # 取同ID第一个LOS值即可
    LOS = ('LOS', 'first')
)

# 打印结果验证
print(result_df)

执行后得到的result_df就是你需要的目标格式数据,可以直接用to_csv或者to_excel导出到文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 00:18:03