2016-01-06 28 views
3

假设我有两个DataFrame df1和df2,df1中的连接键是一列,但df2中的键是索引。如何在一列和一个索引上连接两个Pandas数据框

df1 
Out[88]: 
    A B C 
0 1 A 10 
1 2 B 20 
2 3 C 30 
3 4 D 40 
4 5 E 50 

df2 

Out[89]: 
    D E 
A 22 2 
B 33 3 
C 44 4 
D 55 5 
E 66 6 

我想要做这样的事情,

pd.merge(df1,df2, how= 'outer',left_on="B" , right_on= df2.index) 

我知道这是一定要fail.I可以通过重置DF2索引解决办法,但在应用程序中,我将不得不指数回。

df2=df2.reset_index() 

我想知道是否可以简单地加入一列和一个索引?

+0

尝试'pd.merge(df1,df2,how ='outer',left_on =“B”,right_index = True)' – EdChum

回答

5

可以指定right_index=True对指数的RHS合并:

In [193]: 
pd.merge(df1,df2, how= 'outer',left_on="B" , right_index= True) 

Out[193]: 
    A B C D E 
0 1 A 10 22 2 
1 2 B 20 33 3 
2 3 C 30 44 4 
3 4 D 40 55 5 
4 5 E 50 66 6 
0

我想你也可以使用加入:

df1.join(DF2,对= 'B',如何= '外')

相关问题