python原地去重实战案例笔记

数据样例:👇

最终想要的结果:

一、解决办法

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

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,来获取数据,它的写法为:

python 复制代码
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]))
相关推荐
智搜广告2 小时前
智搜广告:科技行业AI回答优化公司如何破局
大数据·python·elasticsearch·geo
IpdataCloud3 小时前
AI智能体调用工具怎么核验来源IP?归属地、网络类型与代理风险识别(含Python代码)
数据库·python·tcp/ip
2601_966949653 小时前
只拿到股票代码还不够:量化程序到底还需要哪些标的信息?——从数据建模开始理解股票元数据
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
蒸鱼Yuzheng3 小时前
Python 游戏测试开发怎么准备:日志解析、接口校验、并发与可维护性
自动化测试·python·测试开发·面试题·游戏测试
Ivanqhz3 小时前
BM1688 双核架构
python·深度学习·神经网络·cnn·mlir
Java后端的Ai之路4 小时前
Python进阶探索17 - Python中的深拷贝与浅拷贝
人工智能·python·ai·浅拷贝·深拷贝
西柚研究生1234564 小时前
论文分析17:YOLOv11_UAVNet:无人机航拍图像专用目标检测算法
人工智能·python·深度学习·算法·目标检测
沧海一笑-dj5 小时前
【Python】Python学习笔记-初识 Python
python·python安装·python解释器
打工仔折腾 AI5 小时前
FastAPI 从本机到生产服务器:Nginx+Gunicorn+Uvicorn 完整部署实录
人工智能·后端·python·nginx·fastapi·gunicorn
hanchenxing5 小时前
AI 数据管道重构:从函数堆到链式管道的可读性实践
python