【发布时间】:2022-01-24 18:53:02
【问题描述】:
我有一列,其中每一行都包含一个不同长度的字符串列表。我需要创建一个新列,其中包含一个布尔列表(相当于原始列表),以确定每个元素是否在另一个(更大)列表中找到。
这就是我正在做的,很好,它显然不起作用。我基于这个问题: How to return list of booleans to see if elements of one list in another list
data = [
[1, ["cat", "cat", "mouse"]],
[2, ["dog", "horse"]],
[3, ["cat"]],
[
4,
np.nan,
],
]
df = pd.DataFrame(data, columns=["ID", "list"])
df
main_list = ["cat", "dog", "mouse", "pig", "cow"]
df["contains_item_from_list"] = df["list"].apply(
(lambda x: [x in main_list for x in b])
)
想要的输出:
ID list contains_item_from_list
1 [cat,cat,mouse] [True, True, True]
2 [dog,horse] [True, False]
3 [cat] [True]
4 NaN [False]
【问题讨论】:
标签: python pandas list-comprehension