模糊匹配一列中的字符串并使用 fuzzywuzzy 创建新的数据框

2023-12-04

我有以下数据框:

df = pd.DataFrame(
    {'id': [1, 2, 3, 4, 5, 6], 
     'fruits': ['apple', 'apples', 'orange', 'apple tree', 'oranges', 'mango']
    })
   id      fruits
0   1       apple
1   2      apples
2   3      orange
3   4  apple tree
4   5     oranges
5   6       mango

我希望在列中找到模糊字符串fruits并得到一个新的数据帧,如下所示,其ratio_score高于80。

如何在 Python 中使用 fuzzywuzzy 包做到这一点?谢谢。请注意ratio_score是作为示例组成的一系列值。

我的解决方案:

df.loc[:,'fruits_copy'] = df['fruits']
df['ratio_score'] = df[['fruits', 'fruits_copy']].apply(lambda row: fuzz.ratio(row['fruits'], row['fruits_copy']), axis=1) 

预期结果:

     id      fruits    matched_id     matched_fruits   ratio_score   
0     1       apple        2                apples           95
1     1       apple        4            apple tree           85     
2     2      apples        4            apple tree           80   
3     3      orange        5               oranges           95     
4     6       mango         

相关参考:

使用 python 模糊匹配已排序的列及其自身

在数据框列中应用模糊匹配并将结果保存在新列中

如何在Python中模糊匹配数组列中的项目?

使用 fuzzywuzzy 在数据框中创建一列匹配结果


我的解决方案参考如下:在数据框列中应用模糊匹配并将结果保存在新列中

df.loc[:,'fruits_copy'] = df['fruits']

compare = pd.MultiIndex.from_product([df['fruits'],
                                      df['fruits_copy']]).to_series()

def metrics(tup):
    return pd.Series([fuzz.ratio(*tup),
                      fuzz.token_sort_ratio(*tup)],
                     ['ratio', 'token'])

compare.apply(metrics)

                       ratio  token
apple      apple         100    100
           apples         91     91
           orange         36     36
           apple tree     67     67
           oranges        33     33
           mango          20     20
apples     apple          91     91
           apples        100    100
           orange         33     33
           apple tree     62     62
           oranges        46     46
           mango          18     18
orange     apple          36     36
           apples         33     33
           orange        100    100
           apple tree     25     25
           oranges        92     92
           mango          55     55
apple tree apple          67     67
           apples         62     62
           orange         25     25
           apple tree    100    100
           oranges        24     24
           mango          13     13
oranges    apple          33     33
           apples         46     46
           orange         92     92
           apple tree     24     24
           oranges       100    100
           mango          50     50
mango      apple          20     20
           apples         18     18
           orange         55     55
           apple tree     13     13
           oranges        50     50
           mango         100    100
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

模糊匹配一列中的字符串并使用 fuzzywuzzy 创建新的数据框 的相关文章

  • python 模拟第三方模块

    我正在尝试测试一些处理推文的类 我使用 Sixohsix twitter 来处理 Twitter API 我有一个类充当 Twitter 类的外观 我的想法是模拟实际的 Sixohsix 类 通过随机生成新推文或从数据库检索它们来模拟推文的
  • 如何使用 imaplib 获取“消息 ID”

    我尝试获取一个在操作期间不会更改的唯一 ID 我觉得UID不好 所以我认为 Message ID 是正确的 但我不知道如何获取它 我只知道 imap fetch uid XXXX 有人有解决方案吗 来自 IMAP 文档本身 IMAP4消息号
  • 通过列表理解压平列表列表

    我正在尝试使用 python 中的列表理解来展平列表 我的清单有点像 1 2 3 4 5 6 7 8 只是为了打印这个列表列表中的单个项目 我编写了这个函数 def flat listoflist for item in listoflis
  • Argparse nargs="+" 正在吃位置参数

    这是我的解析器配置的一小部分 parser add argument infile help The file to be imported type argparse FileType r default sys stdin parser
  • 如何在 pytest 中将单元测试和集成测试分开

    根据维基百科 https en wikipedia org wiki Unit testing Description和各种articles https techbeacon com devops 6 best practices inte
  • Pandas 中允许重复列

    我将一个大的 CSV 包含股票财务数据 文件分割成更小的块 CSV 文件的格式不同 像 Excel 数据透视表之类的东西 第一列的前几行包含一些标题 公司名称 ID 等在以下列中重复 因为一家公司有多个属性 而不是一家公司只有一栏 在前几行
  • 填充两个函数之间的区域

    import matplotlib pyplot as plt import numpy as np def domain x np arange 0 10 0 001 f1 lambda x 2 x x 2 0 5 plt plot x
  • 从零开始的 numpy 形状意味着什么

    好的 我发现数组的形状中可以包含 0 对于将 0 作为唯一维度的情况 这对我来说是有意义的 它是一个空数组 np zeros 0 但如果你有这样的情况 np zeros 0 100 让我很困惑 为什么这么定义呢 据我所知 这只是表达空数组的
  • 如何创建一个语句来打印以特定单词开头的单词? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如何在 python 中打印从特定字母开始的单词 而不使用函数 而是使用方法或循环 1 我有一个字符串 想要打印以 m 开头的单词 S
  • 在Python中调整图像大小

    我有一张尺寸为 288 352 的图像 我想将其大小调整为 160 240 我尝试了以下代码 im imread abc png img im resize 160 240 Image ANTIALIAS 但它给出了一个错误TypeErro
  • 如何通过在 Python 3.x 上按键来启动和中断循环

    我有这段代码 当按下 P 键时会中断循环 但除非我按下非 P 键 否则循环不会工作 def main openGame while True purchase imageGrab if a sum gt 1200 fleaButton ti
  • 从 python 发起 SSH 隧道时出现问题

    目标是在卫星服务器和集中式注册数据库之间建立 n 个 ssh 隧道 我已经在我的服务器之间设置了公钥身份验证 因此它们只需直接登录而无需密码提示 怎么办 我试过帕拉米科 它看起来不错 但仅仅建立一个基本的隧道就变得相当复杂 尽管代码示例将受
  • 如何设置 Celery 来调用自定义工作器初始化?

    我对 Celery 很陌生 我一直在尝试设置一个具有 2 个独立队列的项目 一个用于计算 另一个用于执行 到目前为止 一切都很好 我的问题是执行队列中的工作人员需要实例化一个具有唯一 object id 的类 每个工作人员一个 id 我想知
  • 首先对列表中最长的项目进行排序

    我正在使用 lambda 来修改排序的行为 sorted list key lambda item item lower len item 对包含元素的列表进行排序A1 A2 A3 A B1 B2 B3 B 结果是A A1 A2 A3 B
  • Seaborn Pairplot 图例不显示颜色

    我一直在学习如何在Python中使用seaborn和pairplot 这里的一切似乎都工作正常 但由于某种原因 图例不会显示相关的颜色 我无法找到解决方案 因此如果有人有任何建议 请告诉我 x sns pairplot stats2 hue
  • 将 JSON 对象传递给带有请求的 url

    所以 我想利用 Kenneth 的优秀请求模块 https github com kennethreitz requests 在尝试使用时偶然发现了这个问题自由库API http wiki freebase com wiki API 基本上
  • Python 将日志滚动到变量

    我有一个使用多线程并在服务器后台运行的应用程序 为了无需登录服务器即可监控应用程序 我决定包括Bottle http bottlepy org为了响应一些HTTP端点并报告状态 执行远程关闭等 我还想添加一种查阅日志文件的方法 我可以使用以
  • 创建嵌套字典单行

    您好 我有三个列表 我想使用一行创建一个三级嵌套字典 i e l1 a b l2 1 2 3 l3 d e 我想创建以下嵌套字典 nd a 1 d 0 e 0 2 d 0 e 0 3 d 0 e 0 b a 1 d 0 e 0 2 d 0
  • 如何在 OSX 上安装 numpy 和 scipy?

    我是 Mac 新手 请耐心等待 我现在使用的是雪豹 10 6 4 我想安装numpy和scipy 所以我从他们的官方网站下载了python2 6 numpy和scipy dmg文件 但是 我在导入 numpy 时遇到问题 Library F
  • 您可以使用关键字参数而不提供默认值吗?

    我习惯于在 Python 中使用这样的函数 方法定义 def my function arg1 None arg2 default do stuff here 如果我不供应arg1 or arg2 那么默认值None or default

随机推荐

  • 如何在 Javascript 中获取重复数组的最后一次出现位置

    我有一个包含重复项的数组 nameList name name1 filename filename1 name name2 filename filename2 name name3 filename filename2 我只想保留唯一的
  • 在 Python Tkinter 模块中检测按钮按下

    我在 python tkinter 中检测 检查按钮按下时遇到问题 我有一个变量click我希望如果我的按钮被点击那么它就会变成 True 例如 这是我的代码 buttonClicked False myButton Button 我想要这
  • 如何记录 ARCamera 随着时间的推移的位置和旋转并将其保存到文件中?

    我已经尝试创建一个 ARView 两天多了 它可以随时间记录相机在空间中的位置 然后将其保存到关键帧文件中 基本上 我想创建一个应用程序 让您记录虚拟相机的运动 然后可以在 3D 应用程序中使用 例如Autodesk Maya or Cin
  • ISO 8601 Date JS 解释差异 - IE/FF 与 Chrome

    为什么 IE FF 和 Chrome 需要 JavaScript 引擎解释方式不同 this 日期格式 YYYY MM DDTHH mm ss fff 没有时区指示符 new Date 2015 02 18T15 43 57 803 get
  • WPF 如何创建具有验证和绑定的自定义文本框

    我正在开发一个用于货币编辑的自定义文本框 我见过一些现成的 但它们很复杂和 或并不真正可用 迫使您采取不良做法 例如对应该在控件上使用的名称进行硬编码 因此 我决定自己完成此操作 但在使用绑定选项时遇到了麻烦 因为分配给绑定属性的属性必须是
  • 使用 Python SDK 进行数据流流式传输:将 PubSub 消息转换为 BigQuery 输出

    我正在尝试使用数据流读取 pubsub 消息并将其写入大查询 我获得了 Google 团队的 alpha 访问权限 并且已经使提供的示例正常工作 但现在我需要将其应用到我的场景中 发布订阅有效负载 Message data datetime
  • 处理滤镜和颜色

    我想制作如图所示的过滤器here 这些是我的目标过滤器 但您能指导我如何实现它们吗 我怎样才能制作这样的过滤器 我需要遵循哪些算法 作为初学者我需要采取哪一步 这是获取 RGB 值和滤镜阴影的更好 最简单的方法 copy of image
  • 如何在 swift 中使用 tableview 重新排序 Realm 表

    我想使用 Realm 作为数据源 在 swift 的表格视图中重新排序我的收藏夹列表 以下代码可以工作 但是它会创建两次收藏夹列表 我正在努力删除数据 以便能够以正确的顺序重新加载收藏夹 这是代码 MARK REORDER list ove
  • 楼梯递归

    我试图理解一本书中提供的以下问题的解决方案 一个孩子正在跑上有 n 级台阶的楼梯 并且一次可以跳 1 级 2 级或 3 级 实现一种方法来计算孩子可以跑上楼梯的可能方式 书中的解决方案如下 源于 最后一步可能是从n 1开始的单步跳跃 从步骤
  • 复制到向量给出段错误

    我正在尝试复制矢量数据sample to Y如下 std map
  • 如何使应用程序适合Android中的纵向、横向等配置?

    我已经以纵向配置完成了我的应用程序 当我在设备中加载应用程序时 它会出现肖像配置 但在横向模式下我总是缺少一些控件 如何修复两种配置的屏幕 这个问题之前有人问过 here 如果您是初学者 您可能会发现以下内容很有用 阅读 开发方向感知的 A
  • 使用 matplotlib 构建网络图时出错

    文件 C Users Vrushab PC Downloads Dissertation untitled0 py 第 125 行 位于 matplotlib rcParams figure figsize 50 50 NameError
  • UIAlertView 无法显示并导致“EXC_BAD_ACCESS”错误

    当按下键盘上的返回按钮时 将调用一个方法 调用另一个返回整数的方法后 将根据该整数创建一条消息 然后该消息被传递到 UIAlterView 并显示给用户 该警报没有任何选项 因此我不调用委托 而只是通知用户发生了什么 Edit 下面是完整的
  • Google Spreadsheet Apps 脚本库可以包含用户对话框吗?

    Google 电子表格使用的 Apps 脚本库中的内容是否有限制 具体来说 库可以包含 HTML 对话框吗 我创建了一个电子表格脚本 它添加了一个菜单项以向用户显示一个对话框 它用HtmlService createHtmlOutputFr
  • [System.Object[]] 不包含名为“replace”的方法

    以下是文件 edit07 html 的一部分 From array我能够访问 empid user employeeid and seat user Position 代码中断的部分是 filecontent filecontent rep
  • 如何禁用实体框架中属性的自动映射

    我决定在实体框架中使用流畅的映射 我的目的是通过代码来映射一切 而不需要任何属性和自动映射功能 我发现的最好方法是 EntityTypeConfiguration 类 我为项目中的每个实体实现它 后来我向我的实体之一添加了财产 不需要保留此
  • 如何在 firebird 函数 datediff 中获得正确的年、月和日

    我必须问另一个关于 Firebird 中的 datediff 的问题 我不知道在这种情况下如何获得正确的结果 工人x有两份雇佣合同 第一份是在1988 09 15至2000 03 16期间 第二份是在2000 03 16至2005 02 2
  • 如何将 SQL Azure 数据库复制到本地开发服务器?

    有谁知道如何将 SQL Azure 数据库复制到我的开发计算机上 我想停止付费在云中拥有开发数据库 但这是获取生产数据的最佳方式 我将生产数据库复制到新的开发数据库 但我希望在本地拥有相同的数据库 有什么建议么 有多种方法可以做到这一点 使
  • 是否可以进行 RGBA 浮动和返回往返并读取 WebGL GLSL ES 1.0 中的像素?

    我在尝试了每种可能的算法大约一周后提出了这个问题 并且使用了 stackoverflow 上可能的每个先前答案 但没有结果 所以 请善意地帮助 GLSL 学徒 我在尝试着 将 RGBA 转换为浮点型 执行一些计算 将浮点数转换为 RGBA
  • 模糊匹配一列中的字符串并使用 fuzzywuzzy 创建新的数据框

    我有以下数据框 df pd DataFrame id 1 2 3 4 5 6 fruits apple apples orange apple tree oranges mango id fruits 0 1 apple 1 2 apple