python原地去重实战案例笔记

数据样例:👇

图片

最终想要的结果:

图片

一、解决办法

思路:处理逐个元素检查是否已经出现过,重复的元素用空字符串替换。

# 原始数据
data = [['数据1', '数据2', '数据3', '数据4', '数据5'],['D', 'A', 'S', 'Q', 'J'],['Y', 'L', 'D', 'J', 'O'],['G', 'X', 'X', 'P', 'V'],['L', 'H', 'Z', 'M', 'D'],['N', 'X', 'J', 'B', 'Z']
]# 创建一个集合来存储已经出现过的值
seen = set()# 处理数据
result = [data[0]]  # 保留表头
for row in data[1:]:new_row = []for item in row:if item not in seen:new_row.append(item)seen.add(item)else:new_row.append('')result.append(new_row)# 打印结果
for row in result:print('\t'.join(row))

在这里插入图片描述

但在现实生活中我们可能都是直接读取excel,来获取数据,它的写法为:

import pandas as pd# 读取 Excel 文件中的数据
file_path = '公式练习题原地去重.xlsx'  # 设置要读取的 Excel 文件路径
df = pd.read_excel(file_path)# 将数据转换为列表形式
data = df.values.tolist()# 创建一个集合来存储已经出现过的值
seen = set()# 处理数据
result = [df.columns.tolist()]  # 保留表头,将列名转换为列表并放入结果列表中
for row in data:new_row = []for item in row:if item not in seen:# 如果当前元素不在已出现的集合中,将其添加到新行列表,并将其加入集合new_row.append(item)seen.add(item)else:# 如果当前元素已出现过,在新行列表中添加空字符串new_row.append('')result.append(new_row)# 将结果转换回 DataFrame 并保存为新的 Excel 文件
result_df = pd.DataFrame(result[1:], columns=result[0])
result_df.to_excel('processed_output.xlsx', index=False)
# 打印结果(可选)
for row in result:print('\t'.join([str(i) for i in row]))

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

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

相关文章

给哔哩哔哩bilibili电脑版做个手机遥控器

前言 bilibili电脑版可以在电脑屏幕上观看bilibili视频。然而,电脑版的bilibili不能通过手机控制视频翻页和调节音量,这意味着观看视频时需要一直坐在电脑旁边。那么,有没有办法制作一个手机遥控器来控制bilibili电脑版呢? 首先…

如何在macOS开发中给 PKG 签名和公证(productsign+notarytool)

在macOS中,给PKG文件进行签名是一个确保用户能够顺利无警告地安装软件的重要步骤。以下是给PKG签名的详细步骤: 一、准备阶段 获取开发者账号和证书: 首先,需要在苹果开发者网站(Apple Developer)注册一个…

Linux系统下minio设置SSL证书进行HTTPS远程连接访问

文章目录 1.配置SSL证书使用HTTPS访问2.MINIO SDK 忽略证书验证3.使用受信任的证书 1.配置SSL证书使用HTTPS访问 生成域名对应的SSL证书,下载Apache版本,我目前只发现Apache这个里面有对应的私钥和证书 私钥重命名为private.key证书重命名为public.crt&…

AtCoder ABC376A-D题解

个人觉得 ABC 变得越来越难了/kk/kk/kk 比赛链接:ABC376 Problem A: Code #include <bits/stdc.h> using namespace std; int main(){int N,C;cin>>N>>C;for(int i1;i<N;i)cin>>T[i];int ans0,pre-1e5;for(int i1;i<N;i){if(T[i]-pre>C){…

Java:String类(超详解!)

一.常用方法 &#x1f94f;1.字符串构造 字符串构造有三种方法&#xff1a; &#x1f4cc;注意&#xff1a; 1. String是引用类型&#xff0c;内部并不存储字符串本身 如果String是一个引用那么s1和s3应该指向同一个内容&#xff0c;s1和s2是相等的&#xff0c;应该输出两…

使用Django框架开发企业级Web应用

&#x1f496; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4bb; Gitee主页&#xff1a;瑕疵的gitee主页 &#x1f680; 文章专栏&#xff1a;《热点资讯》 使用Django框架开发企业级Web应用 1 引言 2 Django简介 3 安装Python与Django 4 创建Django项目 5 设计应用结构 6 创…

行业首发|美格智能创新推出5G+Wi-Fi 7智能终端解决方案,端侧AI助力数智升维

在数字化时代的生产生活过程中&#xff0c;特殊场景下的通信需求愈发重要。高速、灵活、稳定的通信保障能够进一步提升生产生活的效率。随着5G网络的高速发展&#xff0c;一方面&#xff0c;其凭借低时延、高带宽、高可靠性和大规模连接的特性让移动终端的网络连接实现跨越式升…

UML总结

零&#xff1a;学习链接 UML_哔哩哔哩_bilibili 一&#xff1a;UML概述 二&#xff1a;类图 类图&#xff08;Class Diagram&#xff09;是统一建模语言&#xff08;UML&#xff09;中一种重要的图形表示&#xff0c;用于描述系统中的类及其之间的关系。它是面向对象设计中常…

基于SSM+微信小程序考试的管理系统(考试1)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 基于SSM微信小程序考试的管理系统实现了管理员及用户。 1、管理员功能有个人中心&#xff0c;用户管理&#xff0c;考试资料管理&#xff0c;用户交流管理&#xff0c;试卷管理&#xff…

大数据日志处理框架ELK方案

介绍应用场景大数据ELK日志框架安装部署 一&#xff0c;介绍 大数据日志处理框架ELK&#xff08;Elasticsearch、Logstash、Kibana&#xff09;是一套完整的日志集中处理方案&#xff0c;以下是对其的详细介绍&#xff1a; 一、Elasticsearch&#xff08;ES&#xff09; 基本…

ZEISS ATOS Q蓝光三维扫描仪高效把控零件质量检测【上海沪敖3D】

位于Bengaluru的施耐德电气工厂拥有一流的计量设备&#xff0c;可以检测所有供应商的零件。当时&#xff0c;他们在使用一款激光扫描设备进行质量检测&#xff0c;但是&#xff0c;该设备不便于携带&#xff0c;且检测时需要喷涂大量的显影液。此外&#xff0c;它需要被安装在夹…

LeetCode--买卖股票的最佳时机Ⅲ--动态规划

一、题目解析 二、算法原理 这道题跟另外的几道股票问题分析方式相似&#xff0c;区别主要就在于该题规定我们最多可以完成两笔交易&#xff0c;那么我们就可以定义二维数组f[][]&#xff0c;g[][]。f[i][j]表示在第i天后我们手中持有股票且交易次数为j时的最大利润&#xff0c…

微服务之网关、网关路由、网关登录校验

简介&#xff1a;来源&#xff1a;SpringCloud微服务开发与实战&#xff0c;java黑马商城项目微服务实战开发&#xff08;涵盖MybatisPlus、Docker、MQ、ES、Redis高级等&#xff09; 认识网关 前端请求不能直接访问微服务&#xff0c;而是要请求网关&#xff1a; 网关可以做…

JetBrains IDE中GPU进程(JCEF)重启问题(Too many restarts of GPU-process)解决方案

目录 前言1. GPU进程重启问题概述1.1 什么是GPU进程重启问题&#xff1f;1.2 该问题带来的影响 2. GPU进程重启问题的原因分析2.1 显卡驱动的兼容性问题2.2 系统资源的限制2.3 JCEF组件的设置不合理 3. 解决方案3.1 方法一&#xff1a;通过自定义属性禁用GPU加速3.2 方法二&…

CRC校验 生成多项式选取奇次偶次的问题讨论

目录 问题一&#xff1a;为什么CRC校验码不支持偶次校验码&#xff1f; 问题二&#xff1a;如何判断一个生成多项式是否为偶次多项式&#xff1f; 步骤&#xff1a; 示例&#xff1a; 注意&#xff1a; 问题三&#xff1a;CRC32的生成多项式是什么&#xff1f;是偶次还是…

Python自动打开本地谷歌浏览器—无需下载驱动器(模板—自己的笔记)

目录 专栏导读1、库的介绍2、库的安装3、核心代码4、完整1&#xff1a;自动打开本地谷歌浏览器5、使用Selenium连接到远程调试端口总结 专栏导读 &#x1f338; 欢迎来到Python办公自动化专栏—Python处理办公问题&#xff0c;解放您的双手 &#x1f3f3;️‍&#x1f308; 博…

电气安全隐患不容忽视

在现代生活中&#xff0c;电力如同血液般滋养着城市的每一个角落&#xff0c;然而&#xff0c;当这股能量失控时&#xff0c;它也能瞬间化身为吞噬生命的火焰。根据国家消防局的权威数据&#xff0c;电气火灾占所有火灾的28.4%&#xff0c;而其中6.5%的源头直指短路——这一看似…

WebSocket—双向实时通信

WebSocket 是一种用于建立客户端和服务器之间的全双工通信协议。它允许在同一连接上进行双向数据传输&#xff0c;特别适合实时性要求高的应用场景&#xff0c;如即时聊天、实时通知和在线游戏等。WebSocket 使用 HTTP 握手建立连接&#xff0c;一旦连接建立&#xff0c;数据可…

014:数据恢复软件iCare Data Recovery安装教程

摘要&#xff1a;本文详细介绍数据恢复软件iCare Data Recovery安装流程。 一、软件介绍 iCare Data Recovery Pro是一款专业且高效的数据恢复软件&#xff0c;专为解决各种数据丢失问题而设计。该软件具备强大的扫描和恢复功能&#xff0c;能够深入查找并恢复包括文档、图片、…

【移动应用开发】Android持久化技术

目录 一、实现一个“我的图书馆” 1. 用户登陆界面 1.1 运行截图 1.2 源代码 ① 布局文件activity_login.xml ② res/values/strings.xml ③ LoginActivity.kt ④ 在AndroidManifest.xml注册LoginActivity.kt 2. 图书信息数据库和显示界面 2.1 功能实现截图 2.2 源…