元素明智 'in' for pandas 具有一系列列表

Element wise 'in' for pandas with a Series of Lists

我有大约 30 列,如果该值位于列表列的该行中,我希望更改它们的值。这有点难以口头描述,所以这里有一些代码可以说明我正在谈论的内容:

test = test.groupby('RealId')['Player'].apply(list).reset_index(name='Invalids')
test.index = te["RealId"]
test.drop("RealId", axis='columns', inplace=True)
test = test.join(te, on="RealId", how="left")

test['PA_14'].isin(test['Invalids'])

PA_14列是一个普通的字符串系列,而Invalids是一个字符串列表系列。我想要的是最后一行输出一个布尔向量,但 isin() 似乎不适用于一系列列表。考虑到它需要再完成 30 次,我如何相对快速地完成此操作?

你的最后一行实际上测试了 test['PA_14'] 的每个元素 (str) 是否是 test['Invalids'] 的元素(列表)之一。
你可以试试: boolean_index = [s in list_s for (s, list_s) in zip(test['PA_14'], test['Invalids'])]