Skip to main content
 首页 » 编程设计

python之沿着具有非唯一索引的列连接两个数据框

2025年05月04日21飞鱼

我有两个数据框,我想将它们按列连接起来。索引不是唯一的:

df1 = pd.DataFrame({'A': ['0', '1', '2', '2'],'B': ['B0', 'B1', 'B2', 'B3'],'C': ['C0', 'C1', 'C2', 'C3']}): 
    A   B   C 
0  0  B0  C0 
1  1  B1  C1 
2  2  B2  C2 
3  2  B3  C3 
 
df2 = pd.DataFrame({'A': ['0', '2', '3'],'E': ['E0', 'E1', 'E2']},index=[0, 2, 3]) 
    A   E 
0  0  E0 
1  2  E1 
2  3  E2 

A 应该是我的索引。我想要的是:

    A   B   C   E 
0  0  B0  C0    E0 
1  1  B1  C1    NAN 
2  2  B2  C2    E1 
3  2  B3  C3    E1 

这个 pd.concat([df1, df2], 1) 给我错误:

Reindexing only valid with uniquely valued Index objects 

请您参考如下方法:

也许您正在寻找左外 merge .

df1.merge(df2, how='left') 
   A   B   C    E 
0  0  B0  C0   E0 
1  1  B1  C1  NaN 
2  2  B2  C2   E1 
3  2  B3  C3   E1