2016-10-22 4 views
1

데이터 프레임이 두 개 있습니다. 주요 데이터 프레임 인 데이터 프레임 "A"에는 "Number", "Donation"및 "Var1"의 3 개 열이 있습니다. 데이터 프레임 B에는 2 개의 열 "번호"와 "위치"가 있습니다. DataFrame B의 "Number"열은 A의 "Number"하위 집합입니다. DataFrame A에서 새 열을 형성하고 싶습니다. - "NEW"는 열의 숫자 값을 매핑하고, DataFrame B에 존재하는 다른 모든 값이 나는 이런 식으로 뭔가를 보이는 새 열로 DFA를 원하는 두 dataframes입니다 0다른 데이터 프레임에서 다른 시리즈 비교/매핑

>>>DFA 
Number donation Var1 
243  4  45 
677  56  34 
909  34  22 
565  78  24 
568  90  21 
784  33  88 
787  22  66 
>>>DFB 
Number location 
909  PB 
565  WB 
784  AU 

될 것입니다 다른 1로 값을 추가합니다.

>>>DFA 
Number donation Var1 NEW 
243  4  45 0 
677  56  34 0 
909  34  22 1 
565  78  24 1 
568  90  21 0 
784  33  88 1 
787  22  66 0 

이 숫자는 0

답변

2

당신은 isin있어서 사용할 수 범 존재한다면 DFB에 존재하는 경우 1로 값을 갖는 새로운 열 가지고

DFA['NEW'] = (DFA['Number'].isin(DFB['Number'])).astype(int) 

예 :

import pandas as pd 

DFA = pd.DataFrame({'Number': [243, 677, 909, 565, 568, 784, 787], 
        'Var1': [45, 34, 22, 24, 21, 88, 66], 
        'donation': [4, 56, 34, 78, 90, 33, 22]}) 
DFB = pd.DataFrame({'Number': [909, 565, 784], 'location': ['PB', 'WB', 'AU']}) 

DFA['NEW'] = (DFA['Number'].isin(DFB['Number'])).astype(int) 
print(DFA) 

수율

Number Var1 donation NEW 
0  243 45   4 0 
1  677 34  56 0 
2  909 22  34 1 
3  565 24  78 1 
4  568 21  90 0 
5  784 88  33 1 
6  787 66  22 0 
관련 문제