当前位置:迷你笔记 » 效率 » Python清除Excel单元格内的重复项(保留第一个)

Python清除Excel单元格内的重复项(保留第一个)

确保Python已安装依赖项:pandasopenpyxl

pip install pandas openpyxl

把以下代码保存为remove_duplicates_keep_first.py文件

import pandas as pd

def remove_duplicates_keep_first(file_path, sheet_name, column_name, output_file=None):
    # 读取 Excel 文件
    df = pd.read_excel(file_path, sheet_name=sheet_name)
    
    # 检查列是否存在
    if column_name not in df.columns:
        raise ValueError(f"列 '{column_name}' 不存在于工作表 '{sheet_name}' 中")
    
    # 创建字典跟踪已见的值
    seen = {}
    result = []
    
    # 遍历列的值
    for idx, value in df[column_name].items():
        if pd.isna(value) or value == "":  # 忽略空值
            result.append(value)
        elif value not in seen:
            seen[value] = True
            result.append(value)
        else:
            result.append(pd.NA)  # 重复项替换为空
    
    # 更新列
    df[column_name] = result
    
    # 保存结果
    if output_file is None:
        output_file = file_path
    df.to_excel(output_file, sheet_name=sheet_name, index=False)
    print(f"处理完成!重复项已删除,保留第一个,结果保存到 {output_file}")

# 示例用法
file_path = r"C:\Users\XXX\Downloads\XXX.xlsx"  # 使用原始字符串
sheet_name = "Sheet1"  # 替换为你的工作表名称
column_name = "XXX"  # 替换为你的列名(例如 "A" 或列标题)
output_file = r"C:\Users\XXX\Downloads\output.xlsx"  # 可选:输出到新文件

remove_duplicates_keep_first(file_path, sheet_name, column_name, output_file)

注意:
列名:column_name必须是Excel文件中的列标题(第一行)。如果你的Excel没有标题行,可以使用列索引df.columns[0]

未经允许不得转载:迷你笔记 » Python清除Excel单元格内的重复项(保留第一个)

相关文章

评论 (0)

7 + 2 =