Извлечение строк во фрейме данных на основе нескольких критериев? - PullRequest
0 голосов
/ 09 мая 2019

У меня есть два фрейма данных, состоящих из нескольких идентичных строк и похожих столбцов, как показано ниже:

     mydf1:
           id, f1, f2 ,f3 , ..., fn
           x1, 34, 45 ,32 , ...,  0
           x1, 24, 55 ,1  , ...,  0
           x1, 67, 43 ,5  , ...,  0
           x2, 20, 89 ,4  , ...,  1
           x2, 24, 50 ,1  , ...,  1
           x3, 14, 15 ,1  , ...,  1
           x3, 44, 25 ,11  , ..., 1
           ..  ..  ..  ..    ... ..

      mydaf2:
             id, v1, v2 ,v3 , ...,vm
             x1, 74, 4 ,32 , ..., 32
             x2, 64, 5 ,10  , ..., 56
             x3, 4, 3 ,50  , ..., 78

Теперь я хочу создать новый mydf_new, состоящий из mydf2 и один дополнительный столбец 'fn', взятый из mydf1.Как видно из mydf1, fn - это функция, которая содержит только 1 и 0 и идентична для каждого идентификатора.Например, для x1 fn всегда равно 0, для x2 fn всегда равно 1 и так далее.Я хочу добавить эти 0 и 1 в новый фрейм данных для соответствующего идентификатора, поэтому мой новый фрейм данных должен выглядеть следующим образом:

       mydaf_new:
             id, v1, v2, v3 , ..., vm, fn
             x1, 74, 4 , 32 , ..., 32, 0
             x2, 64, 5 , 10 , ..., 56, 1
             x3, 4,  3 , 50 , ..., 78, 1

Есть идеи, что я исправлю эту проблему?

1 Ответ

0 голосов
/ 09 мая 2019

Попробуйте это:

df = mydf1[['id', 'fn']]
mydf_new = mydf2.merge(df, how='left', on='id')
...