如何扫描字符串中的字符以匹配不同列中的另一个字符串

问题描述

我有2列字符串,我想根据每个字符串的前3个字符来匹配字符串。基本上,代码遍历第1列第1行的每个字符,并将其与第2列的行进行比较以找到最佳匹配。

IE:第1行第1列扫描“ p”“ a”“ s”,并在Col2中查找以“ p”“ a”“ s”开头的字符串,以此类推,以第2行第1列。

我对python很陌生;我的道歉。

原始表(未排序)

+-------------+---------+----------+
|  Row Index  |  Col1   |  Col2    |
+-------------+---------+----------+
| 1           | pasta   | sauce    |
| 2           | sauce   | orange   |
| 3           | orange  | pasta    |
+-------------+---------+----------+

预期表(匹配后)

+-------------+---------+----------+
|  Row Index  |  Col1   |  Col2    |
+-------------+---------+----------+
| 1           | pasta   | pasta    |
| 2           | sauce   | sauce    |
| 3           | orange  | orange   |
+-------------+---------+----------+

我没有任何代码可以显示,因为我不确定如何启动。谢谢。

解决方法

可能不是最快,最干净的解决方案,但会返回您要的内容:

df['Col3'] = df.Col1.apply(lambda x: [i for i in df.Col2 if i.startswith(x[:3])][0])