Вы можете создать функцию, которая проверяет пересечения между наборами вашего списка и сравниваемым списком.
С учетом
import pandas as pd
cmp = ["bye","place","hi","australia"]
lst = [
["hi", "no", "bye", "Global", 24],
["morning", "X", "place"],
["so", "large", "mall","test"],
["hi", "X", "place", "bye"]
]
Код
def is_in(nested, compare):
"""Return a tuple of (row, bool), True if the compared list intersects."""
compared = set(compare)
return [(x, bool(set(x) & compared)) for x in nested]
bool_lst = is_in(lst, cmp)
bool_lst
выход
[(['hi', 'no', 'bye', 'Global', 24], True),
(['morning', 'X', 'place'], True),
(['so', 'large', 'mall', 'test'], False),
(['hi', 'X', 'place', 'bye'], True)]
Это похоже на ваш вывод. Отсюда нам просто нужно создать DataFrame:
df = pd.DataFrame(bool_lst, columns=["Value", "Result"])
df.rename_axis("Index")
выход
Последнее может быть сведено к одной строке:
pd.DataFrame([(x, bool(set(x) & set(cmp))) for x in lst], columns=["Value", "Result"]).rename_axis("Index")