Python 当每行都是列表时,如何使用isin()函数?

Python 当每行都是列表时,如何使用isin()函数?,python,pandas,Python,Pandas,例如: import pandas as pd data = ['A2', 'A5', 'XS', '2X', '8W'] codes = {'codes':[data]} df = pd.DataFrame(codes) codes 0 [A2, A5, XS, 2X, 8W] 现在我想测试一下,看看我的列表中是否有其他列表中的某些值 df['wo'] = df.codes.isin(["8C", "8D", "8E", "8W", "A2"]) 我

例如:

import pandas as pd
data = ['A2', 'A5', 'XS', '2X', '8W']
codes = {'codes':[data]}
df = pd.DataFrame(codes)

                  codes
0  [A2, A5, XS, 2X, 8W]
现在我想测试一下,看看我的列表中是否有其他列表中的某些值

df['wo'] = df.codes.isin(["8C", "8D", "8E", "8W", "A2"])
我不断得到
TypeError:unhabable类型:“list”
如何修复此问题?

pandas
set
你可以使用集合。当减去集合时,得到集合差。比较集合时,可以得到适当的子集。当一个集与另一个集差分时,它是同一个集的适当子集。。。然后是一个十字路口

s = df.codes.apply(set)
s - set(["8C", "8D", "8E", "8W", "A2"]) < s

0    True
Name: codes, dtype: bool
s=df.codes.apply(设置)
s-集([“8C”、“8D”、“8E”、“8W”、“A2”])
您希望它为您返还什么?这里的逻辑是什么?最终是1或0。请注意,pandas对非标量项没有强大的支持。最好让列表中的每个元素都有自己的行;这也是SBA中定义女性拥有的小型企业的代码。所以“wo”应该是0或1。这只是测试的一个示例。因此,如果两个列表之间有任何交集(公共元素),那么它将为1,否则为0?这是可行的,但这不是我希望的解决方案。我可能会尝试将代码列表转换为字符串,然后使用isin()函数。这正是我想要的,谢谢!