2016-08-11 2 views
3

I 해요 내가 같은 일을 pd.merge을 사용하는 방법을 알아낼 수 없습니다왼쪽 여러 열 조인

library(dplyr) 
mtcars2=mtcars 
mtcars3 = mtcars %>% left_join(mtcars2[,c("mpg","vs","hp")], by =c("mpg",'hp')) 

# what this does is I do a left join with multiple columns and then bring over only *1* additional column. This means that mtcars3 only has one additional field - a duplicated 'vs' 

같은 것을 할 것 인 R과 dplyr 사용하는 데 사용됩니다. 그 의미를

import pandas as pd 
mtcars = pd.read_csv('mtcars.csv') 
mtcars2=mtcars 

mtcars3 = pd.merge(mtcars, mtcars2['vs','hp','mpg'],how='left', on = ['mpg','hp']) 
+0

http://pandas.pydata.org/pandas-docs/stable/merging.html – Merlin

+0

병합에 대해 배우는 데 도움이되는 두 개의 링크가 있습니다. http://chrisalbon.com/python/pandas_join_merge_dataframe.html – Merlin

답변

3

IIUC 당신에 의해 하위 집합을 사용할 수를 만드는 경우 가입 총격 사건을 제외하고 조인 된 테이블의 모든 열을하지 - 나는 두 개의 열으로 가입 한 후 를 통해 3 열을 가지고 할 것 []를 추가하고 mtcars2를 생략 - 다시 mtcars를 사용할 수 있습니다

import pandas as pd 
mtcars = pd.read_csv('mtcars.csv') 
mtcars3 = pd.merge(mtcars, mtcars[['vs','hp','mpg']], how='left', on = ['mpg','hp']) 

샘플 :

import pandas as pd 

mtcars = pd.DataFrame({'vs':[1,2,3], 
         'hp':[1,1,1], 
         'mpg':[7,7,9], 
         'aaa':[1,3,5]}) 

print (mtcars) 
    aaa hp mpg vs 
0 1 1 7 1 
1 3 1 7 2 
2 5 1 9 3 

mtcars3 = pd.merge(mtcars, mtcars[['vs','hp','mpg']], how='left', on = ['mpg','hp']) 
print (mtcars3) 
    aaa hp mpg vs_x vs_y 
0 1 1 7  1  1 
1 1 1 7  1  2 
2 3 1 7  2  1 
3 3 1 7  2  2 
4 5 1 9  3  3 
+0

아하 그래서 간단합니다. 조인 테이블 주위에 두 번째 괄호 세트 만! 내가 그걸 알아 내려고 애쓰는 데 시간을 보냈다. 정말 고맙습니다 – scbears88