2016-01-06 59 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',如何= '外')

相關問題