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

如何将多条记录映射至唯一ID?多数据集ID关联合并需求咨询

解决ID映射合并多记录的Pandas方案

刚好碰到过类似的场景,用Pandas可以轻松实现你要的ID映射合并需求,我给你一步步拆解实现过程:

1. 先构造示例数据集

首先我们先把你描述的两个DataFrame用代码还原出来:

import pandas as pd

# 构造df1(唯一ID的数据集)
df1 = pd.DataFrame({'ID': [1, 2, 3, 4, 5]})

# 构造df2(含重复ID的数据集)
df2 = pd.DataFrame({
    'ID': [1, 2, 1, 3, 3],
    'col1': ['mango', 'melon', 'straw', 'banana', 'papaya']
})

2. 合并df2中同一ID的col1值

我们需要先对df2按ID分组,把同一个ID对应的col1值用空格拼接起来:

# 按ID分组,将col1的内容用空格连接
df2_merged = df2.groupby('ID')['col1'].agg(' '.join).reset_index()

这一步之后,df2_merged就变成了每个ID对应唯一合并值的数据集:

ID           col1
0   1    mango straw
1   2          melon
2   3  banana papaya

3. 和df1做左连接,保留所有ID

接下来用左连接(how='left')把处理后的df2和df1合并,这样df1里的所有ID都会被保留,没有匹配到的ID对应的col1会显示为NaN:

# 左连接合并两个数据集
result_df = df1.merge(df2_merged, on='ID', how='left')

4. 填充缺失值为"not available"

最后把NaN值替换成你需要的"not available":

# 填充缺失值
result_df['col1'] = result_df['col1'].fillna('not available')

最终输出结果

运行完上面的代码后,打印result_df就能得到你想要的结果:

ID             col1
0   1      mango straw
1   2            melon
2   3    banana papaya
3   4  not available
4   5  not available

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:48:25