Используйте понимание списка с оператором in
:
df['Result'] = [b in a for a, b in df[['List of Numbers','Number']].values]
Аналогичная идея с zip
:
df['Result'] = [b in a for a, b in zip(df['List of Numbers'],df['Number'])]
Или решение с DataFrame.apply
:
df['Result'] = df.apply(lambda x: x['Number'] in x['List of Numbers'], axis=1)
РЕДАКТИРОВАТЬ: измените df['Result']
на маску для любых решений выше и отфильтруйте по boolean indexing
:
mask = df.apply(lambda x: x['Number'] in x['List of Numbers'], axis=1)
df1 = df[mask]