difflib 比较文本相似度,找出错误值

news2024/12/23 5:55:52

        在日常的数据分析过程中,我们可能会遇到这样的问题。在处理数据时,有的文本内容是同一类目,但是由于手工输入错误  或者大小写的问题,可能会造成将产品分到不同的类目下,这时候就需要对数据进行清洗。如何实现快速比较,找出错误值呢?下面我们就介绍一个新的库,当当当~~~~~~~~就是它-------------->difflib

上例子吧:

1)打印数据

 可以看到“CarName”这一列,有各种品牌及型号。考虑到数据量大,现在我们只处理品名。

2)查看是否存在异常数据

#1.2.2 查看汽车名称是否有异常
car_name = data['CarName'].str.split(expand =True)[0]
print(set(car_name))

 通过打印的结果,确实存在我们担心的问题,但是品牌数量比较多,需要快速定位错误值。

3)引入difflib.SequenceMatcher(a=i, b=j).quick_ratio(),返回相似度

import difflib
list1 =car_name.unique().tolist() # 将名称去重,转为列表形式

new_list = []  # 用于存放相似的名称
for i in range(0,len(list1)):   
    a= list1[i]
    for j in  range(i+1,len(list1)):
        b= list1[j]
        differ = difflib.SequenceMatcher(a=a, b=b).quick_ratio()
        if 0.7<differ<1:  # 将相似度在0.7-1之间的名称追加到列表中
            new_list.append(a)
            new_list.append(b)
print(new_list)

打印结果:

         从第三步的打印结果,可以看出,在CarName  中属于同一种品牌的是以上五种。我们结合第二步的结果,发现vm  和volkswagen也是同一品牌。

4)替换错误值

new_name = {'Nissan':'nissan','maxda':'mazda','toyouta':'toyota','vokswagen':'volkswagen','vw':'volkswagen','porcshce':'porsche'}
data['CarCompany'] = data['CarName'].str.split(expand =True)[0]
data['CarCompany'] = data['CarCompany'].replace(new_name) # 替换
data

打印结果:

 完成~

这个需求的核心就是引入了difflib库,得到了文本的相似度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/744895.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Selenium基础篇之屏幕截图方法

文章目录 前言一、用途1.捕获页面错误2.调试测试用例3.展示测试结果4.记录页面状态 二、方法1. save_screenshot2. get_screenshot_as_file3. get_screenshot_as_png4. get_screenshot_as_base64 总结 前言 大家好&#xff0c;我是空空star&#xff0c;本篇给大家分享一下Selen…

IDEA+SpringBoot + Mybatis + Shiro+Bootstrap+Mysql智慧仓库系统

IDEASpringBoot Mybatis ShiroBootstrapMysql智慧仓库系统 一、系统介绍1.环境配置 二、系统展示1. 管理员登录2.主页3.货位一览4.入库单5. 库存明细6. 呆滞过期报表7. 转库记录8.入库记录9.出库记录10.出库单11.物料信息12.仓库设置13.用户管理14.操作员管理15.角色管理16.账…

Python实现SMOGN算法解决不平衡数据的回归问题

本文介绍基于Python语言中的smogn包&#xff0c;读取.csv格式的Excel表格文件&#xff0c;实现SMOGN算法&#xff0c;对机器学习、深度学习回归中&#xff0c;训练数据集不平衡的情况加以解决的具体方法。 在不平衡回归问题中&#xff0c;样本数量的不均衡性可能导致模型在预测…

解决Navicat连接Oracle报ORA-28547

《进入Oracle官网》 下载Instant Client Products --------------》Oracle Database download database --------------》Download Oracle Database X Instant Client - C/C Drivers (OCI, OCCI, ODBC) and Utilities Download Now 根据自己的操作系统下载对应的Oracle …

【深入浅出Apache Jackrabbit】第三章 Repository 配置文件

系列文章目录 第一章 初见 Apache Jackrabbit 第二章 Apache Jackrabbit 入门 第三章 Repository 配置文件 第四章 Apache Jackrabbit 文件存储 第五章 Apache Jackrabbit 版本管理 文章目录 系列文章目录一、创建一个 Repository 配置文件二、初始化 Repository Apache Jackr…

基于单片机的智能温控风扇的设计与实现

功能介绍 以STM32单片机作为主控系统&#xff1b; 液晶显示当前温度&#xff0c;风速等级&#xff0c;自动手动模式息&#xff1b; DS18B20检测当前的温度&#xff1b; 按键设置温度上限&#xff1b; 手动模式下&#xff1a; 直接控制风扇档位&#xff0c;可以开启/关闭风扇&a…

DragGAN在Windows11中下载安装

DragGAN是一种颠覆性的新型图像生成和编辑技术&#xff0c;它实现了前所未有的用户对图像创作过程的控制能力。使用DragGAN&#xff0c;用户可以用鼠标拖放的方式在空白画布上概括构思图像&#xff0c;系统会自动生成图像细节。例如&#xff0c;用户可以拖拽画一个矩形作为“汽…

js原生实现楼层效果

html文件 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><style>* {m…

TPU编程竞赛系列|第九届 “互联网+”大学生创新创业大赛产业命题赛道,算能6项命题入选!

近日&#xff0c;第九届中国国际“ 互联a网 ” 大学生创新创业大赛产业命题正式公布&#xff0c;算能提交的六 项企业命题成功入选正式赛题。算能六项赛题主要围绕国产 TPU 芯片的边缘计算系统和 RISC-V 架构处理器来设计&#xff0c;且为参赛选手提供了超强算力开发板等硬件资…

前端vue入门(纯代码)29_路由的params参数

手机里的钞票薄情寡义,身上的赘肉不离不弃&#xff01; 【27.Vue Router--路由的params参数】 params属性起到的作用和query差不多&#xff0c;都是用于传递和接收参数&#xff0c;只不过&#xff0c;它是在src/router/index.js文件中进行配置 // 该文件专门用于创建整个应用…

逆向某安卓游戏native层登录协议的过程记录

前言 主要参考白龙哥的unidbg学习&#xff1a;SO逆向实战十三篇 用到工具&#xff1a; frida(HOOK看参数) unidbg&#xff08;模拟&#xff09; ida&#xff08;静态分析&#xff09; charles&#xff08;抓包&#xff09; 准备 此处省略一大堆获取So文件流程&#xff0c;…

单片机编程要求的C语言水平和技能

如果你想从事单片机工作&#xff0c;你需要具备一定水平的C语言编程技能。以下是一些建议的技能和知识&#xff0c;可以帮助你为单片机编程做好准备&#xff1a; 熟悉C语言基础&#xff1a;掌握C语言的基本语法、数据类型、控制结构和函数等。这是你开始学习单片机编程的基础。…

实操:用Flutter构建一个简单的微信天气预报小程序

​ 微信小程序是一种快速、高效的开发方式&#xff0c;Flutter则是一款强大的跨平台开发框架。结合二者&#xff0c;可以轻松地开发出功能丰富、用户体验良好的微信小程序。 这里将介绍如何使用Flutter开发一个简单的天气预报小程序&#xff0c;并提供相应的代码示例。 1. 准备…

《C语言初阶篇》循环语句还没搞懂?这篇文章带你轻松学会循环语句!

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏:《快速入门C语言》《C语言初阶篇》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 前言&#x1f4ac; 循环语句的介绍&#x1f4ac; while 语句的介绍&#x1f4ad; while中的break&#x1f4ad;…

numpy 多项式函数回归与插值拟合模型;ARIMA时间序列模型拟合

参考&#xff1a; https://blog.csdn.net/mao_hui_fei/article/details/103821601 1、多项式函数回归拟合 import numpy as np from scipy.optimize import leastsq import pylab as plx np.arange(1, 17, 1) y np.array([4.00, 6.40, 8.00, 8.80, 9.22, 9.50, 9.70, 9.86,…

ELK 企业级日志分析系统----elk的部署

文章目录 一、ELK 简介1.1 ElasticSearch介绍1.2 ELK的组件ElasticSearchKiabanaLogstash可以添加的其它组件 1.3 为什么要使用 ELK1.4 完整日志系统基本特征1.5 ELK 的工作原理&#xff1a; 二、elk环境部署2.1 ELK Elasticsearch 集群部署&#xff08;在Node1、Node2节点上操…

vue3 处理elementPlus的Tree树状结构的选中和编辑数据回显

<!-- 添加角色 请求菜单:props"{ children: children, label: name }" children:后端返回的子集结构的key label&#xff1a;name后端返回的名字&#xff1a;data"menus" menus是后端返回的菜单权限列表--><el-treeref"elTreeRef":dat…

Studio One6免费版音乐人常用的编曲软件

Studio One是Pre sounds公司首次研究开发宿主软件的成果。Studio One在其研发环节就吸取了市面上其他宿主软件的优缺点并且做了专业的调研整改。将其他宿主软件的优点经过改良融合在一起&#xff0c;将不足之处进行舍弃或者优化。 Studio One是一款功能强大的编曲软件&#xff…

clickonce 发布winform 桌面快捷键打不开程序

错误应用程序名称: applaunch.exe&#xff0c;版本: 4.8.9032.0&#xff0c;时间戳: 0x6250a8ba 错误模块名称: KERNELBASE.dll&#xff0c;版本: 10.0.22621.1778&#xff0c;时间戳: 0x63f72683 异常代码: 0xe0434352 错误偏移量: 0x000000000006536c 错误进程 ID: 0x0x3E84 …

arm学习stm32之spi总线数码管倒计时,裸机开发,soc

由于时间没有用时间计时器操作&#xff0c;有些误差&#xff0c;后续有空会翻新计时器版本 main.c #include "spi.h" extern void printf(const char *fmt, ...); void delay_ms(int ms) {int i,j;for(i 0; i < ms;i)for (j 0; j < 1800; j); } int num[10…