确保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]。
