首页 > 解决方案 > 使用熊猫在两列中匹配或接近匹配

问题描述

我有两个变量列(新 CCR 和旧 CCR)。我正在尝试比较整个列(新与旧)中的变量名称,而不仅仅是 1:1 或交叉。新列表也比旧列表短。我确实喜欢变量匹配率,但并不真正需要新的变量列。

只是想找出在数据集中显示匹配或接近匹配的最佳方式。接受任何和所有建议。我对表格结果使用了 fuzzwuzzy:

from fuzzywuzzy import process, fuzz
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
data = pd.read_excel('/Users/xrx000/Documents/CCR Intake Form Comparison .xlsx')
old_list = data['OLD CCR Intake'].dropna()
def find_match(x):
    match = process.extractOne(x['NEW CCR Intake'], new_list, scorer=fuzz.partial_token_sort_ratio)
    return pd.Series([match[0], match[1]])
data[["new variable name",'match_rating']] = data.dropna(subset=['NEW CCR Intake']).apply(find_match, axis=1, result_type='expand')
display( data.head(10))

结果见表: 旧表与新表,但我希望它比较相同变量名的第 2 行和第 9 行等列

标签: pythonexcelpandasdataframejupyter-notebook

解决方案


推荐阅读