Pandas合并TypeError:'NoneType'类型的对象没有len()

时间:2018-01-02 07:15:06

标签: python pandas

我正在尝试使用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()

1 个答案:

答案 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且未合并索引,则默认情况下它将合并到列的交集处。

它表示要加入的列中的值。