1 回答
TA贡献1856条经验 获得超17个赞
您没有正确循环遍历序列。 遍历 中的列名。 遍历注释字符串。 创建包含所有 .for row in survey:
survey
for word in survey['Comment Text']:
survey['Name'] = 0
0s
您可以使用 set intersections 和 apply()来避免所有通过行的循环:
survey = pd.DataFrame({'Comment_Text':['Hi rcriii',
'Hi yourself stranger',
'say hi to Justin for me']})
names = pd.DataFrame({'Name':['rcriii', 'Justin', 'Susan', 'murgatroyd']})
s2 = set(names['Name'])
def is_there_a_name(s):
s1 = set(s.split())
if len(s1.intersection(s2))>0:
return 1
else:
return 0
survey['Name'] = survey['Comment_Text'].apply(is_there_a_name)
print(names)
print(survey)
Name
0 rcriii
1 Justin
2 Susan
3 murgatroyd
Comment_Text Name
0 Hi rcriii 1
1 Hi yourself stranger 0
2 say hi to Justin for me 1
作为奖励,返回以获取每行的匹配次数。len(s1.intersection(s2))
添加回答
举报