我有大约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次,我如何相对快速地做到这一点?
答案 0 :(得分:0)
最后一行实际上是对test['PA_14']
的每个元素(str)进行测试的,如果它是test['Invalids']
的元素(列表)之一。
你可以试试:
boolean_index = [s in list_s for (s, list_s) in zip(test['PA_14'], test['Invalids'])]