如何比较每列文本值?

问题描述

我想与python中的每一列进行比较。

例如:

没有 姓名 name_convert 包含
0 苹果 苹果 真的
1 苹果 草莓 错误
2 香蕉奶昔 香蕉 真的
3 香蕉奶昔 香蕉 真的

我想创建 contains 列。它定义了每列(namename_convert)的比较结果。 applepie (in name) 包含 apple(in name_convert) 字符串。

如果 name_convertname 的子字符串,我如何创建包含 True 的新列?

这是我的尝试:

data['contains'] = data['name'].isin(data['name_convert'])

解决方法

您可以使用 list comprehensionzip 函数:

df['contains']=[i in j for i,j in zip(df['name_convert'],df['name'])]

: df
Out[10]: 
   no.         name name_convert  contains
0    0     applepie        apple      True
1    1     applepie   strawberry     False
2    2  bananashake       banana      True
3    3  bananashake       banana      True