问题描述
我有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])