【Python驯化-01】python中set去重数据每次结果不一致问题解决

【Python驯化-01】python中set去重数据每次结果不一致问题解决
 
本次修炼方法请往下查看
在这里插入图片描述

🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地!
🎇 免费获取相关内容文档关注:微信公众号,发送 pandas 即可获取
🎇 相关内容视频讲解 B站

🎓 博主简介:AI算法驯化师,混迹多个大厂搜索、推荐、广告、数据分析、数据挖掘岗位 个人申请专利40+,熟练掌握机器、深度学习等各类应用算法原理和项目实战经验

🔧 技术专长: 在机器学习、搜索、广告、推荐、CV、NLP、多模态、数据分析等算法相关领域有丰富的项目实战经验。已累计为求职、科研、学习等需求提供近千次有偿|无偿定制化服务,助力多位小伙伴在学习、求职、工作上少走弯路、提高效率,近一年好评率100%

📝 博客风采: 积极分享关于机器学习、深度学习、数据分析、NLP、PyTorch、Python、Linux、工作、项目总结相关的实用内容。

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

🌵文章目录🌵

  • 🎯 1. 基本介绍
  • 💡 2. 问题描述
  • 🔍 3 解决方案
  • 🔍 4. 注意事项
  • 🔧 5. 总结

下滑查看解决方法

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

  

🎯 1. 基本介绍

  Pandas在Python中,set 是一种无序的集合数据结构,它不保留元素的插入顺序。然而,从 Python 3.7 开始,标准的 set 类型被修改为保持插入顺序,这为我们提供了一种新的数据结构 —— Ordered Set。Ordered Set 结合了列表(List)和集合(Set)的特性,即它不允许重复元素,同时保持元素的添加顺序。

💡 2. 问题描述

  通常我们使用set,在python中都是用来对数据进行过滤去重操作,但是有时候我们需要每次运行python文件保持set去重后结果都是一致的,具体为,如果训练一个模型对数据进行编码,预测文件如果在同一个文件里面,这个时候就需要保持每次运行的结果是一致的,如果用set则会出现每次运行的结果不一致问题,从而会导致我们的编码结果不对,具体的例如如下所示:
  对于代码1.py:

  a = ['B-Cause', 'i-Cause', 'c-Cause', 'B-Cause', 'd-Cause', 'B-Cause']
print(set(a))

  我们在vscode中的terimeral里面执行一次代码:python 1.py,结果为:
在这里插入图片描述
  我们使用相同的操作vscode中的terimeral里面执行一次代码:python 1.py,结果为:
在这里插入图片描述
  从上可以看出我们使用set去重数据,里面每次都是无序且没有规律的,因此为了使得每次的结果都保持一个顺序我们需要将其进行固定的话set函数不能解决上面的问题;

🔍 3 解决方案

  在python3.7以后,有一个ordered set集合,对于每次处理的数据逻辑有一套规则,因此,即使每次运行的结果去重之后的顺序也是一样的,具体的使用如下所示:
  安装相关的包:pip install ordered-set,修改上面的代码为:

from ordered_set import OrderedSet
a = ['B-Cause', 'i-Cause', 'c-Cause', 'B-Cause', 'd-Cause', 'B-Cause']
print(OrderedSet(a))

   运行上述代码几次的结果如下所示:
在这里插入图片描述
   可以看到这样我们每次运行的去重结果的顺序都保持一致了,。

🔍 4. 注意事项

  对上述的各个函数在使用的过程中需要注意的一些事项,不然可能会出现error,具体主要为:

  • 虽然从 Python 3.7 开始,set 保持了元素的插入顺序,但这并不意味着它是一个线程安全的容器。在多线程环境中使用时需要注意。
  • Ordered Set 依然不允许重复元素。如果尝试添加已存在的元素,将不会报错,但元素也不会被重复添加。

🔧 5. 总结

  Ordered Set 是 Python 中一个非常有用的数据结构,它结合了集合的独一无二性和列表的有序性。从 Python 3.7 开始,我们可以直接使用内置的 set 来实现 Ordered Set 的功能,这使得我们在处理需要保持元素顺序的场景时更加方便。希望这篇博客能够帮助你更好地理解 Ordered Set 的概念和应用。

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

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

相关文章

信息安全系列课程之网络空间测绘与态势感知技术揭秘(一)

今天,我们来讲一下网络安全! 本文章仅提供学习,切勿将其用于不法手段! 目前,在信息安全攻防领域,主要分为了两个技术发展方向,分别为渗透测试(红队技术) 和 安全运维&a…

考研计组chap2数据的表示和运算

3一、进位计数制 1.r进制 第i位表示r进制的权为i 2.进制转换 (1)r->10 对应位置数*权值 (2)2 -> 16 or 8 每三位2进制数可表示1位16进制 每四位2进制数可表示1位16进制 so 分开之后转为16进制即可 eg:1…

江苏省SAP代理商之选:无锡哲讯为企业信息化管理开启新篇章

江苏省,作为中国东部沿海的经济重镇,拥有众多行业领先企业。随着数字化转型的浪潮,SAP代理商在这片热土上扮演着至关重要的角色。无锡哲讯智能科技有限公司(iP-Solutions),作为SAP在华东地区的金牌合作伙伴…

基于51单片机恒温箱设计

基于51单片机恒温箱设计 (程序+原理图+设计报告) 功能介绍 具体功能: 本设计由STC89C52单片机电路数字温度传感器DS18B20电路按键电路蜂鸣器报警电路继电器控制电路LCD1602液晶显示电路电源电路组成。 1.LCD1602液…

Spring源码中是如何使用设计模式六大原则的

设计模式的六大原则,通常指的是SOLID原则,它们是面向对象设计中用于提高代码可维护性、灵活性和可扩展性的五个指导原则,学习六大原则,可以让你的代码变得高级而优雅,今天的内容 V 哥结合 Spring源码中如何运用六大原则…

偏微分方程算法之抛物型方程差分格式编程示例四(Richardson外推)

目录 一、研究问题 二、C++代码 三、结果分析 一、研究问题 已知其精确解为。分别取以下三种步长: ①

流程引擎框架

SpiffWorkflow python 流程引擎框架哪个好 Camunda 核心表介绍 https://zhuanlan.zhihu.com/p/645786758 camunda流程引擎基本使用(笔记) https://blog.csdn.net/weixin_46949627/article/details/129255647 python连接FastDfs服务封装类 https://blog.c…

树形dp,CF 1926 G - Vlad and Trouble at MIT

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 Problem - G - Codeforces 二、解题报告 1、思路分析 考虑每个结点最终状态只可能为和P连通或者和S连通 我们我们自然而然的将问题划分为这样的状态 f[x][0]代表结点x和P连通需要割掉最少的边 f[x][1]代…

Windows Server配置NFS,做ESXI共享存储

1:登录wINDOWS系统,点击添加角色和功能。 2:根据向导提示,一路下一步。在服务器角色中选择文件和存储服务器在文件和iSCSI服务中勾选NFS服务器。 3:按照提示一路下一步,安装NFS。 4:安装完成后关闭安装界面。 5&#x…

代码随想录算法训练营第六十五天 | 岛屿数量 深搜、岛屿数量 广搜、岛屿的最大面积

岛屿数量 深搜 题目链接:99. 岛屿数量 文字讲解:99. 岛屿数量 | 代码随想录 解题思路 本题已经说明,只有水平方向和竖直方向才能组成岛屿 本题思路,是遇到一个没有遍历过的节点陆地,计数器就加一,然后把…

为电脑小白推荐的5款实用工具软件

​ 电脑上的各类软件有很多,除了那些常见的大众化软件,还有很多不为人知的小众软件,专注于实用功能,简洁干净、功能强悍。 1.磁盘空间分析——TreeSize Free ​ TreeSize Free是一款免费的磁盘空间分析工具,能够扫描…

Sip协议(四) -注册流程

Sip协议(四) -注册流程 本文主要介绍下sip协议中, agent的注册流程. 一: 流程图 简单的流程图如下: agent发起注册fs 返回401 ,并携带WWW-Authenticateagent第二次发起注册,增加Authorizationfs返回授权成功, 或者失败. 二: sip流程 发起注册REGISTER 首先agent发起注册请求…

重磅!鹅厂大牛带你30分钟玩转AI智能结对编程!

在大模型时代,人工智能技术的突破性进展正重塑着软件开发的面貌。AI的融入不仅优化了代码编写过程,更开启了智能编程的新纪元,为开发者带来了前所未有的工作效率和创新可能。AI结对编程不仅能够极大提升研发效率,还能通过智能分析…

Java基础入门day65

day65 web项目 页面设计 仿照小米官网&#xff0c;将首页保存到本地为一个html页面&#xff0c;再将html页面保存为jsp页面&#xff0c;在项目中的web.xml文件中配置了欢迎页 <welcome-file-list><welcome-file>TypesServlet</welcome-file> </welcome-…

linux源码编译

1/进入源码目录 cd linux.4.9.1 2. 从当前机器的启动目录拷贝配置信息到源代码目录。这步操作的意思是我们编译内核的配置采用用当前环境一致的配置。 cp -v /boot/config-$(uname -r) .config 3.配置界面 make menuconfig 4/先编译所有模块&#xff0c;确保正确 make -j…

【查缺补漏】python

python查缺补漏 底板除 还有一种除法是//&#xff0c;称为地板除&#xff0c;两个整数的除法仍然是整数&#xff1a; >>> 10 // 3 3你没有看错&#xff0c;整数的地板除//永远是整数&#xff0c;即使除不尽。要做精确的除法&#xff0c;使用/就可以。 因为//除法只…

rsa加签验签C#和js、java、微信小程序互通

js实现rsa加签验签 https://github.com/kjur/jsrsasign 11.1.0版本 解压选择需要的版本&#xff0c;这里选择all版本了 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>JS RSA加签验签</title&g…

有趣网站分享 - 生成 O‘Reilly 类型封面

文章目录 网站介绍效果 网站介绍 –> O’RLY 封面工厂 https://orly.nanmu.me 你可以… 设置文本内容 选择图片 选择颜色 效果 2024-06-20&#xff08;四&#xff09;

机器人----控制方式

位置控制 点位控制 点到点--PTP 只关心起点和目标点&#xff0c;不关心走过的轨迹。 连续轨迹控制 CP(continus path) eg&#xff1a;焊接&#xff0c;切割。 力控制 使用多大的力进行控制。 eg:用多大的力写字。

2.java pom.xml 添加配置说明

目录 1项目坐标&#xff1a; 2项目依赖&#xff1a; 3项目构建配置&#xff1a; 4项目属性&#xff1a; 5.项目信息&#xff1a; 6.项目分发管理&#xff1a; 7.项目插件配置&#xff1a; 8.项目依赖管理&#xff1a; pom.xml 是 Maven 项目的核心配置文件&#xff0c…