我正在尝试使用pandas merge left_on和right_on params。 根据{{3}}和Documentation 1
文档1:声明left_on和right_on是要在左/右DataFrame中加入的字段名称。 文档2:左侧DataFrame中的列用作键
键的含义是什么?
以下文件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')
left_frame将'key'作为字段名称,但它返回
TypeError: object of type 'NoneType' has no len()
答案 0 :(得分:8)
似乎你需要:
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')
键的含义是什么?
如果选中merge
:
on :标签或列表
要加入的字段名称。必须在两个DataFrame中都能找到。如果on为None且未合并索引,则默认情况下它将合并到列的交集处。
它表示要加入的列中的值。