python-无法左加入

python-无法左加入,python,pandas,Python,Pandas,我正在尝试使用merge左键连接下面的两个表。主表如下所示 print(MbrKPI3.head()) 下面是要左连接的表 print(df5.head()) 以下是合并代码,使用主键“忠诚度卡编号” MbrKPI4=pd.merge(MbrKPI3, df5,how='left',on='Loyalty Card No_') 但它不起作用,错误如下。有人能提供建议吗?谢谢 KeyError: 'Loyalty Card No_' 您需要使用参数左索引和右索引: MbrKPI4=pd

我正在尝试使用merge左键连接下面的两个表。主表如下所示

print(MbrKPI3.head())

下面是要左连接的表

print(df5.head())

以下是合并代码,使用主键“忠诚度卡编号”

MbrKPI4=pd.merge(MbrKPI3, df5,how='left',on='Loyalty Card No_')
但它不起作用,错误如下。有人能提供建议吗?谢谢

KeyError: 'Loyalty Card No_'
您需要使用参数
左索引
右索引

MbrKPI4=pd.merge(MbrKPI3, df5,how='left',left_index=True, right_index=True)
但也可以工作,默认情况下,左连接为:

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)
但也可以工作,默认情况下,左连接为:

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

谢谢你的回复,耶斯雷尔,它起作用了!你知道为什么我不能为他们两人指定一个列名(忠诚卡号)来加入吗?因为它不是列,而是索引,请检查它
df5。索引
谢谢你的回复jezrael,它可以工作!你知道为什么我不能为他们两人指定一个列名(忠诚卡号)来加入吗?因为它不是列,而是索引,请检查它
df5.index