You need to enable JavaScript to run this app. Pandas处理ID重复数据集时新增列存储各ID对应的唯一药物列表
优惠活动
大模型
产品
解决方案
定价
更多

Pandas处理ID重复数据集时新增列存储各ID对应的唯一药物列表

实现方法

你可以通过Pandas的分组聚合+映射对齐逻辑完成需求,以下是两种可直接运行的实现方案:

方案1:使用transform直接对齐(推荐)

该方法无需额外构造映射表,分组计算结果会自动匹配原数据集的行索引,代码更简洁:

import pandas as pd

# 示例数据构造,实际使用时替换为读取你的数据集即可,如df = pd.read_csv("你的文件路径.csv")
df = pd.DataFrame({
    'ID': [1, 1, 1, 2, 3, 3, 3],
    'Medication': ['a', 'b', 'c', 'h', 'a', 'a', 'c']
})

# 核心逻辑:按ID分组,对药物列先去重再拼接为逗号分隔字符串
df['Medications'] = df.groupby('ID')['Medication'].transform(lambda x: ', '.join(x.unique()))

方案2:先构造映射表再匹配

如果你需要单独留存每个ID对应的唯一药物映射关系,可以用该方法:

# 构造ID到唯一药物字符串的映射字典
medication_map = df.groupby('ID')['Medication'].unique().str.join(', ')
# 将映射结果匹配到原数据集的每一行
df['Medications'] = df['ID'].map(medication_map)

两种方案运行后得到的结果都和你期望的输出结构完全一致,ID对应的重复药物会自动去重,同一ID的所有行都会填充相同的唯一药物拼接结果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 20:45:05