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

Pandas merge参数疑问及TypeError报错:NoneType对象无len()方法

关于Pandas Merge的keys含义与报错解答

首先来解决你对"keys"的疑惑:文档2里提到的"左侧DataFrame中用作keys的列",这里的keys就是连接键,和文档1说的"用于连接的字段名"是同一个意思,只是换了个术语表述而已。简单说,keys就是你用来让两个DataFrame做行匹配的那些列,比如你代码里的key列就是这个keys。

接下来看你遇到的TypeError: object of type 'NoneType' has no len()报错问题,原因很明确:
你在调用pd.merge()时只指定了right_on='key',但没有对应指定left_on参数。Pandas的merge逻辑里,当你明确指定了right_on(即右边的连接列),就必须同时明确指定left_on(左边的连接列)——哪怕两边的连接列名字完全一样也不能省略,否则Pandas会默认left_on为None,内部处理时就会触发这个len(None)的错误。

你可以用两种方式修正代码:

  • 方式一:因为左右连接列名都是key,直接用on参数更简洁:
df = pd.merge(left_frame, right_frame, how='right', on='key')
  • 方式二:如果坚持用right_on,必须同时加上left_on:
df = pd.merge(left_frame, right_frame, how='right', left_on='key', right_on='key')

执行这两种写法都能得到正确的右连接结果,不会再报错啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:55:41