2017-01-08 4 views
2

2 칸 'x'와 'y'에 따라 2 팬더 데이터 프레임의 교차점을 찾아서 1 개의 DataFrame으로 결합합니다. 데이터는 다음과 같습니다2 칸에 따라 2 팬더 데이터 프레임의 교차점을 확인하십시오

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와 두 결과을 연결 한 후 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