<p>我的Pandas数据集中有两个字符串列</p>
<pre><code>name1 name2
John Doe John Doe
AleX T Franz K
</code></pre>
<p>我需要检查<code>name1</code>是否等于<code>name2</code>。
我现在用的天真的方法是用一个简单的面具</p>
<p><code>mask=df.name1==df.name2</code></p>
<p>但问题是,可能有错误标记的字符串(以一种不可预测的方式-数据太大)阻止了精确匹配的发生。</p>
<p>例如,“John Doe”和“John Doe”不匹配。当然,我修剪,降低了我的弦乐,但其他的可能性仍然存在。</p>
<p>一个想法是查看<code>name1</code>是否包含在<code>name2</code>中。但似乎我不能将<code>str.contains</code>与另一个变量一起用作参数。还有其他想法吗?</p>
<p>非常感谢!</p>
<p>编辑:使用<code>isin</code>会产生非感官结果。
示例</p>
<pre><code>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
</code></pre>