对于如下所示的数据帧,如果name2
中的字符串与每个type
组中name1
中的字符串近似或相同,则返回Y
,否则返回N
。你知道吗
id type name1 name2
0 1 A James B. James
1 2 A Keras Steven
2 3 A NaN Keras
3 4 B Jack Lucy
4 5 B Lucy Jack
5 6 C Jasica Hoverd
6 7 C Steven Jasica
7 8 C NaN Steven L.
预期的结果是这样的,例如,在type
A
中,name2
中的James
在name1
中具有相似的值James B.
,Keras
在name2
和name1
中具有相同的值,因此它们都在result
中返回Y
。虽然Steven
不存在于name1
,所以返回N
。你知道吗
id type name1 name2 result
0 1 A James B. James Y
1 2 A Keras Steven N
2 3 A NaN Keras Y
3 4 B Jack Lucy Y
4 5 B Lucy Jack Y
5 6 C Jasica Hoverd N
6 7 C Steven Jasica Y
7 8 C NaN Steven L. Y
有人能帮忙吗?非常感谢。你知道吗
如果查找相似的值太复杂而无法实现,那么只查找相同的值并返回Y
就可以了。你知道吗
输出
如果没有相似性,就更简单了:
与split基本相似:
为了更好地匹配相似性,可以使用
SequenceMatcher
作为比率,并通过treshold进行过滤,例如,这里通过0.5
:相关问题 更多 >
编程相关推荐