Отфильтруйте пару кредиторов, которые оба ссудили заемщику, но не в одном займе - PullRequest
0 голосов
/ 07 октября 2018

В новом ссудном id = 1 фирма S занимает у двух кредиторов, A, B.В старом кредите id = 2, S занимает у кредиторов B, E, F.В старом ссудном id = 3, S заимствует из A, E, G.

Данные имеют следующую форму:

loan_id_new  loan_id_old  lender  lender_old
1            2            A       B
1            2            A       E
1            2            A       F
1            2            B       B
1            2            B       E
1            2            B       F
1            3            A       A
1            3            A       E 
1            3            A       G 
1            3            B       A       
1            3            B       E       
1            3            B       G

Я хочу исключить любую пару (lender, lender_old) в том же кредите (старом или новом).Результат должен быть таким:

loan_id_new  loan_id_old  lender  lender_old
1            2            A       F
1            3            B       G

1 Ответ

0 голосов
/ 07 октября 2018

Я уверен, что кто-то здесь даст вам более эффективный / Pythonic способ сделать это, но в то же время мои мысли (если я правильно понял):

lenders1 = {'A', 'B'}
lenders2 = {'B', 'E', 'F'}
lenders3 = {'A', 'E', 'G'}

for lender in [lenders1, lenders2, lenders3]:
   mask = (df['lender'].isin(lender)) & (df['lender_old'].isin(lender))
    df = df[~mask]

Не проверено,написано по телефону, извините за плохой отступ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...