是否基于多个条件提取数据框中的行?

时间:2019-05-09 08:06:08

标签: python dataframe join merge selection

我有两个包含多个相同行和相似列的数据帧,如下所示:

     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和一个从mydf1提取的额外列'fn'组成。从mydf1可以看出,fn是仅包含1和0的功能,每个id都相同。例如,对于x1,fn始终为0,对于x2,fn始终为1,依此类推。我想在新数据框中为相应的ID添加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 :(得分:0)

尝试一下:

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