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

Pandas无共同关联键时如何关联两表生成月度货品库存追踪表

Pandas无关联键两表全匹配生成库存明细宽表方案

需求本质

你需要实现的是两张表的笛卡尔积(全交叉连接),即货品表的每一行都和库存容量表的所有日期行一一配对,所有原有字段完整保留,刚好满足「每个货品对应全部月份的库存容量数据」的要求。

最优实现方案

Pandas 1.2.0及以上版本推荐直接用merge方法的原生交叉连接参数,代码最简洁、性能最优:

步骤1:构造示例测试数据(可跳过,直接替换为你自己的实际表)

import pandas as pd

# 库存容量表示例
df_inventory = pd.DataFrame({
    'Date': ['2020-01', '2020-02', '2020-03'],
    'Inventory Capacity': [1000, 1200, 900]
})

# 货品信息表示例
df_item = pd.DataFrame({
    'Item id': ['A001', 'A002', 'A003'],
    'amount': [100, 150, 80]
})

步骤2:执行交叉连接生成宽表

# 一行代码完成笛卡尔积关联
df_final = df_item.merge(df_inventory, how='cross')

低版本Pandas兼容方案(1.2.0以下版本用)

如果你的Pandas版本不支持how='cross',可以通过临时添加共同关联键的方式实现,效果完全一致:

# 两张表都加同一个值的临时键,关联后删除即可
df_final = df_item.assign(tmp_key=0).merge(df_inventory.assign(tmp_key=0), on='tmp_key').drop('tmp_key', axis=1)

最终输出效果

生成的宽表共3个货品 × 3个月份 = 9行数据,所有字段完整保留:

Item idamountDateInventory Capacity
A0011002020-011000
A0011002020-021200
A0011002020-03900
A0021502020-011000
............

后续可直接基于该表做月度货品库存占用、剩余容量等指标的计算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 17:15:00