python pandas - 无法离开加入

时间:2016-12-14 08:08:53

标签: python pandas

我试图使用merge继续加入下面的2个表。主要表如下。

print(MbrKPI3.head())

enter image description here

要加入的表格如下。

print(df5.head())

enter image description here

以下是合并代码,使用主键'会员卡否_'

MbrKPI4=pd.merge(MbrKPI3, df5,how='left',on='Loyalty Card No_')

但它不起作用,出现以下错误。有人可以提供建议吗?谢谢!

KeyError: 'Loyalty Card No_'

1 个答案:

答案 0 :(得分:0)

您需要merge参数left_indexright_index

MbrKPI4=pd.merge(MbrKPI3, df5,how='left',left_index=True, right_index=True)

但也有效join,默认情况下左连接:

MbrKPI4=MbrKPI3.join(df5)

样品:

MbrKPI3 = pd.DataFrame({'B':[4,5,6],
                   'C':[7,8,9]},
                   index=[1,2,3])
MbrKPI3.index.name = 'Loyalty Card No_'
print (MbrKPI3)
                  B  C
Loyalty Card No_      
1                 4  7
2                 5  8
3                 6  9

df5 = pd.DataFrame({'E':[4,5,6]},
                   index=[1,2,3])

df5.index.name = 'Loyalty Card No_'
print (df5)
                  E
Loyalty Card No_   
1                 4
2                 5
3                 6
MbrKPI4=pd.merge(MbrKPI3, df5,how='left',left_index=True, right_index=True)
print (MbrKPI4)
                 B  C  E
Loyalty Card No_         
1                 4  7  4
2                 5  8  5
3                 6  9  6

MbrKPI4=MbrKPI3.join(df5)
print (MbrKPI4)
                 B  C  E
Loyalty Card No_         
1                 4  7  4
2                 5  8  5
3                 6  9  6