Pandas Dataframe Check if column value is in column list

前端 未结 4 867
旧巷少年郎
旧巷少年郎 2021-01-02 13:40

I have a dataframe df:

data = {\'id\':[12,112],
        \'idlist\':[[1,5,7,12,112],[5,7,12,111,113]]
       }
df=pd.DataFrame.from_dict(data)
         


        
4条回答
  •  旧巷少年郎
    2021-01-02 14:36

    By using issubset

    df.apply(lambda  x : set([x.id]).issubset(x.idlist),1).astype(int)
    Out[378]: 
    0    1
    1    0
    dtype: int32
    

    By using np.vectorize

    def myfun(x,y):
        return np.in1d(x,y)
    
    
    np.vectorize(myfun)(df.id,df.idlist).astype(int)
    

    Timing :

    %timeit np.vectorize(myfun)(df.id,df.idlist).astype(int)
    10000 loops, best of 3: 92.3 µs per loop
    %timeit df.apply(lambda  x : set([x.id]).issubset(x.idlist),1).astype(int)
    1000 loops, best of 3: 353 µs per loop
    

提交回复
热议问题