擅长:python、mysql、java
<p>您可以利用Python标准库中的<code>difflib</code>模块来查找不同列之间的相似性。
例如,您可以定义以下函数:</p>
<pre class="lang-py prettyprint-override"><code>from difflib import SequenceMatcher
def compare_df(left, right, col: str):
left[f"{col}_match_ratio"] = 0
for value in left[col]:
best_ratio = 0
for other in right[col]:
result = SequenceMatcher(None, str(value), str(other)).ratio()
if result > best_ratio:
best_ratio = result
left.loc[left[col] == value, f"{col}_match_ratio"] = round(best_ratio, 2)
</code></pre>
<p>然后:</p>
<ul>
<li>您只需确保要比较的列在两个dfs中具有相同的名称</li>
<li>您可以调用df_compare(first_df,second_df,“Owner”),它将“Owner_match_ratio”列添加到second_df中</li>
<li>最后,根据所需的最小匹配率(例如70%)过滤第二个df,如下所示:<code>new_df = second_df.loc[second_df["Owner_match_ratio"] > 0.7, :]</code></li>
</ul>