2017-01-08 6 views
2

2列の 'x'と 'y'に従って2台のpandas DataFrameの交差点を見つけ、それらを1つのDataFrameに結合します。データは以下のとおりです。2列のpandas DataFrameの交差点を確認してください

df[1]: 
    x y  id fa 
0 4 5 9283222 3.1 
1 4 5 9283222 3.1 
2 10 12 9224221 3.2 
3 4 5 9284332 1.2 
4 6 1 51249 11.2 

df[2]: 
    x y  id fa 
0 4 5 19283222 1.1 
1 9 3 39224221 5.2 
2 10 12 29284332 6.2 
3 6 1  51242 5.2 
4 6 2  51241 9.2 
5 1 1  51241 9.2 

期待される出力のようなもの(インデックスを無視することができます)です。

x y  id fa 
0 4 5 9283222 3.1 
1 4 5 9283222 3.1 
2 10 12 9224221 3.2 
3 4 5 9284332 1.2 
4 6 1 51249 11.2 
0 4 5 19283222 1.1 
2 10 12 29284332 6.2 
3 6 1  51242 5.2 

ありがとうございました!

+1

試しましたか?あなたが持っている場合は、あなたの質問にそれを言及し、どのステップを失敗したかを教えてください。 [良い質問をするにはどうすればいいですか](http://stackoverflow.com/help/how-to-ask)をお読みください。とにかく、私たちの多くは、あなたを助け、StackOverflowへようこそ:) – koceeng

+0

リマインダーありがとう!私は次回にそれを組み込みます! – msv123

答えて

1

あなたが必要なものを与える必要がありますが、pd.concatを持つ2つの結果を連結し、その後df1と内側によってdf2をフィルタリング参加し、可能なdf1df2からx,y列に参加することによって交差点を見つけることができます。

intersection = df1[['x', 'y']].merge(df2[['x', 'y']]).drop_duplicates() 
pd.concat([df1.merge(intersection), df2.merge(intersection)]) 

enter image description here

+0

問題が解決しました。どうもありがとうございました! – msv123

関連する問題