Python 合并类型错误:类型为';非类型';没有len()

Python 合并类型错误:类型为';非类型';没有len(),python,pandas,Python,Pandas,我正在试验熊猫合并左上和右上参数。 根据和 文档1:说明left_on和right_on是要在left/right DataFrame中加入的字段名。 文档2:左数据框中用作键的列 键是什么意思 以下文件1: left_frame = pd.DataFrame({'key': range(5), 'left_value': ['a', 'b', 'c', 'd', 'e']}) right_frame = pd.DataFrame({'key': r

我正在试验熊猫合并左上和右上参数。 根据和

文档1:说明left_on和right_on是要在left/right DataFrame中加入的字段名。 文档2:左数据框中用作键的列

键是什么意思

以下文件1:

left_frame = pd.DataFrame({'key': range(5),
                       'left_value': ['a', 'b', 'c', 'd', 'e']})
right_frame = pd.DataFrame({'key': range(2,7),
                       'right_value': ['f', 'g', 'h', 'i', 'j']})
我这样做:

df = pd.merge(left_frame,right_frame,how='right',right_on='key')
左_帧将“key”作为字段名,但它仍然返回

TypeError: object of type 'NoneType' has no len()
看来你需要:

df = pd.merge(left_frame, right_frame, how='right', on='key')
因为左右列名称相同

如果列名称不同:

df = pd.merge(left_frame, right_frame, how='right', right_on='key1', left_on='key2')
键是什么意思

如果检查:

on:标签或列表

要加入的字段名。必须在两个数据帧中都找到。如果on为None且未在索引上合并,则默认情况下,它在列的交点上合并


它意味着要连接的列中的值。

Yes,或者需要
right\u on='key'
left\u index=True
。但是需要
index
值来匹配left df,所以需要
df=pd.merge(left\u frame.set\u index('key'),right\u frame,how='right',right\u on='key',left\u index=True)
我可以说left_on和right_on用于合并具有相同列但具有不同列名的dfs吗?