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

使用pandas merge做笛卡尔积时报KeyError: 'cross'是什么原因?

报错根源

你使用的pandas版本低于1.2.0。
how='cross' 是pandas 1.2.0版本才正式新增的merge参数取值,专门用于快速实现笛卡尔积操作。低于该版本的pandas无法识别这个参数值,会错误地将'cross'当做你指定的合并关联字段名,在两个DataFrame中查找对应字段,查找失败就抛出了KeyError: 'cross'报错。

补充说明

你调整后的写法是旧版本pandas实现笛卡尔积的标准兼容方案:

  • 给两个DataFrame都新增值恒为1的临时键key
  • 按key字段合并后,所有行都会完成关联,自然得到全量笛卡尔积
  • 最后删除临时键key,最终结果和how='cross'的输出完全一致

如果要使用how='cross'写法,先运行print(pd.__version__)确认当前pandas版本,升级到1.2.0及以上版本即可正常使用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 10:57:05