用途
apply:
df['flag'] = df.apply(lambda x: int(x['id'] in x['idlist']), axis=1)print (df) id idlist flag0 12 [1, 5, 7, 12, 112] 11 112 [5, 7, 12, 111, 113] 0
类似:
df['flag'] = df.apply(lambda x: x['id'] in x['idlist'], axis=1).astype(int)print (df) id idlist flag0 12 [1, 5, 7, 12, 112] 11 112 [5, 7, 12, 111, 113] 0
与
list comprehension:
df['flag'] = [int(x[0] in x[1]) for x in df[['id', 'idlist']].values.tolist()]print (df) id idlist flag0 12 [1, 5, 7, 12, 112] 11 112 [5, 7, 12, 111, 113] 0
过滤解决方案:
df = df[df.apply(lambda x: x['id'] in x['idlist'], axis=1)]print (df) id idlist0 12 [1, 5, 7, 12, 112]df = df[[x[0] in x[1] for x in df[['id', 'idlist']].values.tolist()]]print (df) id idlist0 12 [1, 5, 7, 12, 112]



