2016-10-22 21 views
1

私は2つのデータフレームを持っています。データフレームメインデータフレームである "A"は、 "Number"、 "Donation"、 "Var1"の3つのカラムを持ちます。データフレームBには、2つの列「番号」と「場所」があります。 DataFrame Bの "Number"列は、Aの "Number"のサブセットです。DataFrame Aには新しい列が作成されます。 "NEW"は列の数値の値をマップします。データフレームBに存在するが、他のすべての値が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 

これら2つのデータフレームいるだろう他の1として値を追加し、私はこのようになります新しい列をDFAをしたいです。

>>>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 

これは、それはあなたがisin方法使用することができます0

答えて

2

与え不在の場合の数は、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 
関連する問題