Как объединить две таблицы с особыми условиями - PullRequest
0 голосов
/ 28 апреля 2018

У меня есть два DataFrames с одинаковыми функциями:

 customer_id    Class    value  
 1              A        13  
 2              A        14   
 3              B        15

 customer id    Class    value
 1              A        16
 2              B        17
 3              B        18
 4              A        20   

Теперь я хочу 1 DataFrame, один из которых включает клиентов с изменением класса с A на B

 customer_id    Class    value
 2              B        17

Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 28 апреля 2018

Вы можете выполнить сопоставление перед фильтрацией второго кадра данных:

df2['Class_original'] = df2['customer_id'].map(df1.set_index('customer_id')['Class'])

res = df2[(df2['Class_original'] == 'A') & (df2['Class'] == 'B')]

print(res)

   customer_id Class  value Class_original
1            2     B     17              A
0 голосов
/ 28 апреля 2018

Предполагая, что ваши фреймы данных df1 и df2, вы можете объединить их с клиентами:

before_after = pd.merge(df1, df2, on='customer', how='left', suffixes=('_before', '_after'))

Затем проверьте, что изменилось с 'A' на 'B':

before_after[(before_after.id_before == 'A') & (before_after.id_after == 'B')]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...