2016-10-27 10 views
1

異なるサイズの2つのパンダデータフレームがあります。 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の同じ組み合わせを持っているように、私は、これら2つのデータフレームをマージしようとしています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') 

これが行います

関連する問題