2016-10-27 32 views
1

我有兩個不同大小的熊貓數據框。 2個數據幀貌似與Python中的多列匹配的索引

df1 = 

x y data 
1 2 5 
2 2 7 
5 3 9 
3 5 2 

和另一數據框的樣子:

DF2 =

x y value 
5 3 7 
1 2 4 
3 5 2 
7 1 4 
4 6 5 
2 2 1 
7 5 8 

我試圖合併這兩個數據幀,這樣預計最終數據框中有X的相同組合和y各自的價值。我期待在這種格式的最終​​數據幀:

x y data value 
1 2 5  4 
2 2 7  1 
5 3 9  7 
3 5 2  2 

我試着這個代碼,但沒有得到預期的結果。

dfB.set_index('x').loc[dfA.x].reset_index() 

回答

4

使用merge,默認情況下how='inner'因此它可以被忽略,如果加入只對同一列參數on可太忽略:

print (pd.merge(df1,df2)) 
    x y data value 
0 1 2  5  4 
1 2 2  7  1 
2 5 3  9  7 
3 3 5  2  2 

如果實際數據是多個相同的列名使用:

print (pd.merge(df1,df2, on=['x','y'])) 

    x y data value 
0 1 2  5  4 
1 2 2  7  1 
2 5 3  9  7 
3 3 5  2  2 
1
df1.merge(df2,by='x') 

這將做