在 python 中使用 Fuzzymatcher 时如何确定截止值或阈值
Posted
技术标签:
【中文标题】在 python 中使用 Fuzzymatcher 时如何确定截止值或阈值【英文标题】:how do i Determine a Cut-Off or Threshold When Working With Fuzzymatcher in python 【发布时间】:2021-05-27 23:36:13 【问题描述】:请帮忙在照片上是我的输出和代码的屏幕截图,我如何使用 best_match_score 我需要通过返回的“精度分数”进行过滤 该列仅在合并后出现(即只需返回 'best_match_score' 低于 -1.06 的所有内容)
import fuzzymatcher
import pandas as pd
import os
# pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)
pd.set_option('display.width', None)
REDCAP = pd.read_csv(r"C:\Users\Selamola\Desktop\PythonThings\FuzzyMatching\REDCAP Form A v1 and v2 23 Feb 211.csv")
covidSheet = pd.read_csv(r"C:\Users\Selamola\Desktop\PythonThings\FuzzyMatching\Cases missing REC ID 23 Feb 211.csv")
Data_merge = fuzzymatcher.fuzzy_left_join(covidSheet, REDCAP,
left_on=['Participant Name', 'Particfipant Surname', 'Screening Date',
'Screening Date', 'Hospital Number', 'Alternative Hospital Number'],
right_on=['Patient Name', 'Patient Surname', 'Date Of Admission',
'Date Of Sample Collection', 'Hospital Number', 'Hospital Number'])
# Merged_data = pd.merge(REDCAP, covidSheet, how='left',
# left_on=['Patient Name', 'Patient Surname'],
# right_on=['Participant Name', 'Particfipant Surname'])
# Data_merge.to_csv(r'C:\Users\Selamola\Desktop\PythonThings\FuzzyMatching\DataMacth.csv')
print(Data_merge)
【问题讨论】:
如果您只是询问如何应用过滤器,这是一个非常适合谷歌搜索的答案。 “如何在 pandas 中过滤”的第一个结果提供了很多关于结果的选项。如果这不是您要问的,请查看How do I ask a good question? 对不起,没有添加位,但是'best_match_score'列是在运行时生成购买FuzzyMatcher,自然熊猫索引没有效果 很高兴您找到了解决方案。但是,发布有关您的研究的信息可能会有所帮助。这将帮助遇到同样问题的人。 【参考方案1】:这似乎很简单,除非我遗漏了什么。请务必尝试阅读有关 slicing data in pandas 的文档。
mask = Data_merge['best_match_score'] < .1.06
filtered_data = Data_merge[mask]
【讨论】:
抱歉没有加bit,这个但是'best_match_score'列是在运行时生成buzzyMatcher,传统的Panda索引没有效果 我不明白为什么那行不通。只要您以正确的顺序运行它,无论生成它的过程如何,它都应该可以工作。您尝试了哪些方法,哪些方法无效? 当我按电子表格附带的任何其他列进行过滤时,它可以像日期或名称一样正常工作,只是不是'best_maych_score' 我研究了它显然问题出在模块(fuzzymatcher)和创建者不'不回答这个问题,所以我会尝试模糊乌兹以上是关于在 python 中使用 Fuzzymatcher 时如何确定截止值或阈值的主要内容,如果未能解决你的问题,请参考以下文章
在 python 中使用 soffice,Command 在终端中有效,但在 Python 子进程中无效