Может кто-нибудь помочь мне понять, почему FALSE возвращается для первой строки?
Это не работает, потому что .isin(values)
возвращает информацию о том, содержится ли каждый элемент в Серии вvalues
.
Вы можете использовать {0, 1}
в качестве набора и применять достоверность его пересечения к каждому списку:
>>> s = {0, 1}
>>> dfLists['someList!'].apply(lambda x: bool(s.intersection(x)))
0 True
1 False
Это эффективно:
>>> s.intersection([1, 2, 12, 6, 'ABC'])
{1}
>>> s.intersection([1000, 4, 'z', 'a', 'bob'])
set()
bool
первого результата - True
, потому что он не пустой.