python - 使用熊猫在两列中匹配或接近匹配
问题描述
我有两个变量列(新 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))
解决方案
推荐阅读
- reactjs - React 从父组件收集有关某些事件的子组件数据
- r - 使用 R 对数据框中的成对变量进行格兰杰因果分析
- asp.net-core - 如何在 Asp.net Core 的 App_Data 中为连接数据库设置 connectionString
- python - python 3.x 中不同列表推导的输出
- c - 在 Unix 串行编程中启用/禁用按位含义
- winforms - 获取绑定到 DataTable 的 DataGridView 中单击的按钮的值
- qt - Qt 5.15.2 的 QNetworkConfiguration 和 QNetworkConfigurationManager 替代品
- css - 在 css 中为小图像设置 max-width 如何使宽度不大于其原始尺寸?
- python - 获取 ValueError:列的长度必须与键的长度相同
- python - BeautifulSoup - “找不到树生成器”错误,我错过了什么?