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

如何为id列表中每个值关联完整DataFrame生成带id列的合并表

你需要实现的是ID列表与原始DataFrame的笛卡尔积(全量两两匹配),可以用以下两种方法实现:

前置测试数据构造

import pandas as pd

# 注意不要用list作为变量名,会覆盖Python内置的list类型,这里改名为id_list
id_list = ['id1', 'id2', 'id3']
df = pd.DataFrame({
    'A': ['A1', 'A2', 'A3'],
    'B': ['B1', 'B2', 'B3']
})

方法1:cross 合并(推荐,适用于pandas 1.2.0及以上版本)

语法简单直观,性能较好:

# 先将ID列表转为DataFrame
id_df = pd.DataFrame({'id': id_list})
# 执行笛卡尔积合并
result = id_df.merge(df, how='cross')

方法2:assign + explode (兼容pandas老版本)

不需要依赖高版本新特性:

# 给原df新增一列存储完整id列表,再拆分展开为多行,最后调整列顺序
result = df.assign(id=[id_list]).explode('id').reset_index(drop=True)[['id', 'A', 'B']]

两种方法得到的result都和你给出的预期结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 15:06:04