python无法左联接

2024-09-27 00:23:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用merge左连接下面的两个表。主表如下。你知道吗

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_'

Tags: no代码mergecardhead编号howpd
1条回答
网友
1楼 · 发布于 2024-09-27 00:23:07

您需要带有参数left_indexright_index^{}

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)
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

相关问题 更多 >

    热门问题