我的Pandas数据集中有两个字符串列
name1 name2
John Doe John Doe
AleX T Franz K
我需要检查name1
是否等于name2
。
我现在用的天真的方法是用一个简单的面具
mask=df.name1==df.name2
但问题是,可能有错误标记的字符串(以一种不可预测的方式-数据太大)阻止了精确匹配的发生。
例如,“John Doe”和“John Doe”不匹配。当然,我修剪,降低了我的弦乐,但其他的可能性仍然存在。
一个想法是查看name1
是否包含在name2
中。但似乎我不能将str.contains
与另一个变量一起用作参数。还有其他想法吗?
非常感谢!
编辑:使用isin
会产生非感官结果。
示例
test = pd.DataFrame({'A': ["john doe", " john doe", 'John'], 'B': [' john doe', 'eddie murphy', 'batman']})
test
Out[6]:
A B
0 john doe john doe
1 john doe eddie murphy
2 John batman
test['A'].isin(test['B'])
Out[7]:
0 False
1 True
2 False
Name: A, dtype: bool
strip
空格和lower
案例:可以使用difflib计算距离
编辑:与熊猫的集成:
我想你可以用^{} 和^{} 来表示任意空格
s/+
:相关问题 更多 >
编程相关推荐