【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,一经查实,立即删除!

相关文章

考研计组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…

基于51单片机恒温箱设计

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

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

目录 一、研究问题 二、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结对编程不仅能够极大提升研发效率,还能通过智能分析…

【查缺补漏】python

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

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;

前端网页开发学习(HTML+CSS+JS)有这一篇就够!

目录 HTML教程 ▐ 概述 ▐ 基础语法 ▐ 文本标签 ▐ 列表标签 ▐ 表格标签 ▐ 表单标签 CSS教程 ▐ 概述 ▐ 基础语法 ▐ 选择器 ▐ 修饰文本 ▐ 修饰背景 ▐ 透明度 ▐ 伪类 ▐ 盒子模型 ▐ 浮动 ▐ 定位 JavaScript教程 ▐ 概述 ▐ 基础语法 ▐ 函数 …

契约锁电子签章平台 add 远程命令执行漏洞复现(XVE-2023-23720)

0x01 产品简介 契约锁电子签章平台是上海亘岩网络科技有限公司推出的一套数字签章解决方案。契约锁为中大型组织提供“数字身份、电子签章、印章管控以及数据存证服务”于一体的数字可信基础解决方案,可无缝集成各类系统,让其具有电子化签署的能力,实现组织全程数字化办公。通…

还在为Android开发找不到图片测试资源发愁吗? DummyImage来助你加速开发

使用 DummyImage 模拟电影应用数据 在开发和测试过程中&#xff0c;模拟数据是不可或缺的工具。它可以帮助我们在没有真实数据的情况下测试应用程序的功能和性能。本文将介绍如何使用 [DummyImage]https://dummyimage.com生成占位符图像来模拟电影应用的数据&#xff0c;并深入…

专家观点∣企企通采购供应链数字化总监于海生:如何利用数字化技术重构采购流程,推动企业降本增效?

摘要 数字化转型现已成为企业提升竞争力、实现降本增效的必由之路。企业应主动参与到数字经济的建设中&#xff0c;以数据资源为关键要素&#xff0c;以现代信息网络为主要载体&#xff0c;以信息通信技术的有效使用作为效率提升和经济结构优化的重要推动力的一系列经济活动&a…

80W大功率钓鱼灯调光调色方案 | 非同步降压 LED 驱动芯片FP7195,将PWM信号转为模拟信号进行调光,深度可达0.1%

夜钓作为一种受欢迎的休闲娱乐方式&#xff0c;随着LED照明技术的不断发展&#xff0c;钓鱼爱好者们对于钓鱼灯的光照效果和调光调色功能提出了更高的要求。传统的调光方案往往无法满足钓鱼爱好者对于光线亮度和色温的精准控制需求。 对此&#xff0c;我司推出一个80W大功率夜钓…

部署RAC到单实例ADG(11G)

服务器信息 主库RAC环境信息 主库RAC基本环境 节点1 节点2 OS centos 7.9 centos 7.9 数据库版本 11.2.0.4 11.2.0.4 规格 1C4G 1C4G 主机名 racdb01 racdb02 public ip 192.168.40.135 192.168.40.145 vip 192.168.40.13 192.168.40.14 private ip 192…

【开关电源】Buck 降压电路

文章目录 前言基本组成工作原理电路特点工作模式设计与实现 前言 Buck降压电路&#xff0c;也称为降-降&#xff08;step-down&#xff09;转换器&#xff0c;是一种直流-直流&#xff08;DC-DC&#xff09;电源转换器&#xff0c;用于将输入电压转换为较低的输出电压。这种电…

小林图解系统-二.硬件结构 2.7为什么0.1+0.2不等于0.3?

为什么负数要用补码表示&#xff1f; 十进制转二进制&#xff1a;除2取余法 [整数类型]的数字在计算机的存储方式&#xff1a;int类型&#xff0c;32位&#xff0c;最高位[符号标志位]&#xff0c;正数符号位0&#xff0c;负数的符号位1&#xff0c;剩余的31位则表示2进制数据…