pandas 的 on 属性

新增一个共同列,但没有相等的值,发现合并返回是空列表,因为默认只保留所有共同列都相等的行:
>>> left[``'k2'``] ``= list``(``'1234'``)

>>> right[``'k2'``] ``= list``(``'5678'``)

>>> pd.merge(left, right)

Empty DataFrame

Columns: [B, A, k1, k2, F, E]

Index: []
可以指定 on,设定合并基准列,就可以根据 k1 进行合并,并且 left 和 right 共同列 k2 会同时变换名称后保留下来:
>>> pd.merge(left, right, on``=``'k1'``)

A   B  k1  k2_x   C   D   k2_y

0  a2  b2  y     ``3    c1  d1   ``5

1  a2  b2  y     ``3    c2  d2   ``6

2  a3  b3  y     ``4    c1  d1   ``5

3  a3  b3  y     ``4    c2  d2   ``6
默认值:on 的默认值是所有共同列,本例为:on=[‘k1’, ‘k2’]