确保Python
已安装依赖项:pandas
和openpyxl
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]
。