在python中,如何比较数据帧中的两个字符串列表中的任何匹配项以获得True或False?
我在一个数据框中有两列,由字符串列表组成。我想比较列表中的所有项目,看看是否有匹配项,并返回真/假(或任何其他标志)列以突出显示任何匹配项 我试图通过创建集合并按行进行比较来实现这一点,但我不断得到一个“False”,它应该返回“True”('a'在第一列和第二列中,所以应该是True)。如何比较这两个列表在python中,如何比较数据帧中的两个字符串列表中的任何匹配项以获得True或False?,python,list,dataframe,Python,List,Dataframe,我在一个数据框中有两列,由字符串列表组成。我想比较列表中的所有项目,看看是否有匹配项,并返回真/假(或任何其他标志)列以突出显示任何匹配项 我试图通过创建集合并按行进行比较来实现这一点,但我不断得到一个“False”,它应该返回“True”('a'在第一列和第二列中,所以应该是True)。如何比较这两个列表 df=pd.DataFrame({'one':['a','bb','b','v'],['aa','b','c','e']], ‘二’:[[b'、'aa'、'a'、'd']、[b'、'w'、'
df=pd.DataFrame({'one':['a','bb','b','v'],['aa','b','c','e']],
‘二’:[[b'、'aa'、'a'、'd']、[b'、'w'、'f']})
df['one']=df.apply(lambda行:set(行['one']),轴=1)
df['two']=df.apply(lambda行:set(行['two']),轴=1)
df['check']=df.apply(lambda行:第['two']行中的第['one']行,轴=1)
打印(df)
我希望有一个输出为True的新列,因为列表中有匹配的项。在您的
应用中使用以下内容
lambda row: bool(row['one'] & row['two']), axis=1
这里,由于行['one']
和行['two']
已经转换为set,&
在我的行['one']
和行['two']+1之间执行交集操作,因为它解决了问题,但它可能需要一点解释为什么它能帮助OP或其他读者understand@G.Anderson,重新加载页面并获取解释:D